一. 数组扁平化
数组的 扁平化就是将一个二维或者多维的数组进行处理成一个一维的数组
形同var arr = [1,2,3,[4,5,6,[7,8,9]]]
-
reduce
var arr = [1,2,3,[4,5,6,[7,8,9]]] function Fn ( arr ){ let newArr = arr.reduce((res,item)=>{ return [].concat(res,item) }) const flag = newArr.some(item=>Array.isArray(item)) if(flag){ return Fn(newArr) }else{ return newArr } } console.log(Fn(arr))
-
toString&split
function flattening(arr) { let arr1 = arr.toString().split(","); //此时得到的每一项的字符数组 //接着转数字 let arr2 = arr1.map(item => { return item * 1; }) return arr2; } console.log(flattening(arr))
-
join&split
function flattening(arr) { let arr1 = arr.join().split(","); //此时得到的每一项的字符数组 //接着转数字 let arr2 = arr1.map(item => { return item * 1; }) return arr2; }
-
递归
function fn(arr) { var res = [] arr.map(item => { if(Array.isArray(item)) { res = res.concat(fn(item)) }else{ res.push(item) } }) return res }
-
扩展运算符
var arr=[1,[2,[3,4]],5,6] while(arr.some(item =>Array.isArray(item))){ arr = [].concat(...arr) } console.log(arr)