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 ]
...可以展开一层的数组,这里循环遍历
function fun1(arr) { while(arr.some(item=>Array.isArray(item))) { arr = [].concat(...arr); } return arr; }