js數組扁平化

扁平化就是這樣的: fun([1,2,[3,4]]) // [1,2,3,4]數組

1 function fun(array) {
2     if(!Array.isArray(array)) return array;
3     return array.reduce(
4         (result, value) => result.concat(Array.isArray(value) ? fun(value) : value),
5         []
6     );
7 }
8 console.log(fun([1,2,[2,4],[]])) // [ 1, 2, 2, 4 ]
 
let a = []
console.log(a.concat(...[1, 2, 3, [4, 5]]))
console.log(a.concat(...[1, [[2,55],9], 3, [4, 5]])) // [ 1, [ 2, 55 ], 9, 3, 4, 5 ]

...能夠展開一層的數組,這裏循環遍歷spa

function fun1(arr) {
    while(arr.some(item=>Array.isArray(item))) {
        arr = [].concat(...arr);
    }
    return arr;
}
相關文章
相關標籤/搜索