遍歷數組每一項,生成新數組
var arr = [[1, 2, 3],[[[[[[11]]]]]], [4, [5]], [6, [7, 8, 9,[10]]]];
得到 brr: [1, 2, 3, 4, 6,5, 7, 8, 9, 10,11]
運用隊列的方式,先進先出的原理。
//把arr的每個數值存放到新的數組brr裏;
var arr = [[1, 2, 3],[[[[[[11]]]]]], [4, [5]], [6, [7, 8, 9,[10]]]];
var brr = [];
function channge() {
while (arr.length > 0) {
//不斷遍歷第一個數值,判斷長度是否大於0;
if (arr[0].length > 0) {
//如果第一個數組長度大於0,那麼遍歷裏面的值;
for (var j = 0; j < arr[0].length; j++) {
//如果長度大於0的話,就把該數組插入到arr數組裏;
if (arr[0][j].length > 0) {
arr.push(arr[0][j])
} else {
//如果沒有那麼就加入到brr裏;
brr.push(arr[0][j])
}
}
} else {
//如果第一個數值不是數組說明他是數值,那麼加入到brr裏;
brr.push(arr[0])
}
//對第一個數值操作後,刪除第一個數值;
arr.shift();
}
//當arr爲【】時,得出brr了
console.log(arr, brr)
}
// 最終打印結果:
// [] [1, 2, 3, 4, 6,5, 7, 8, 9, 10,11]
channge();