陣列扁平化就是將乙個多維陣列轉換為乙個一維陣列實現基本方式
1、對陣列的每一項進行遍歷。
2、判斷該項是否是陣列。
3、如果該項不是陣列則將其直接放進新陣列。
4、是陣列則回到1,繼續迭代。
5、當陣列遍歷完成,返回這個新陣列。
array.prototype.
flatten
=function()
else
}return resultarr;
}var arr=[1
,2,3
,[4,
5,'hello',[
'world',9
,666]]
]console.
log(arr.
flatten()
)//[1, 2, 3, 4, 5, "hello", "world", 9, 666]
array.prototype.
flatten
=function()
,);}
function
*itertree
(tree)
}else
}let arr1 =[1
,2,[
'a',
'b',
['中'
,'文',[
1,2,
3,[11
,21,31
]]]]
,3];
let list=
for(
const x of
itertree
(arr1)
) console.
log(list)
;//[1, 2, "a", "b", "中", "文", 1, 2, 3, 11, 21, 31, 3]
let arr1 =[1
,2,[
'a',
'b',
['中'
,'文',[
1,2,
3,[11
,21,31
]]]]
,3];
console.
log( arr1.
flat
(infinity))
;
//es6 增加了擴充套件運算子,用於取出引數物件的所有可遍歷屬性,拷貝到當前物件之中:
var arr =[1
,[2,
[3,4
]]];
console.
log(
.concat
(...arr));
// [1, 2, [3, 4]]
//我們用這種方法只可以扁平一層,但是順著這個方法一直思考,我們可以寫出這樣的方法:
// 改進
var arr =[1
,[2,
[3,4
]]];
function
flatten
(arr)
return arr;
}console.
log(
flatten
(arr)
)
JS 多維陣列扁平化 處理
多維陣列扁平化 var arr 1,2,3,4,5,6,7 9,10,11 1 方法一 迴圈陣列 遞迴呼叫 function steamroller arr return arr console.log steamroller2 arr 3 方法三 reduce方法 當陣列中還有陣列的話,遞迴呼叫s...
js中陣列扁平化處理
什麼是陣列扁平化?陣列扁平化就是將乙個多維陣列轉換為乙個一維陣列 實現基本方式 1 對陣列的每一項進行遍歷。2 判斷該項是否是陣列。3 如果該項不是陣列則將其直接放進新陣列。4 是陣列則回到1,繼續迭代。5 當陣列遍歷完成,返回這個新陣列。let arr1 1,2,a b 中 文 1,2,3,11,...
JS 多維陣列扁平化 處理
author mr.live date 2018 01 23 14 55 22 last modified by mr.live last modified time 2018 01 23 14 56 20 多維陣列扁平化 var arr 1,2,3,4,5,6,7 9,10,11 1 方法一 迴圈...