flatten数组扁平化
把所有嵌套数组连接到一个数组中,也即数组扁平化 数组扁平化小课堂开课啦:
完全扁平化:
如果数组的元素都是数字,那么我们可以考虑使用toString方法,
[1,[2,[3,4]]].toString().split(',').map((c)=>Number(c));
利用reduce+递归
flatten = (arr)=>arr.reduce((prev,next)=>prev.concat(Array.isArray(next)?flatten(next):next),[]);
利用...运算符,
flatten = (arr)=>{while(arr.some(item=>Array.isArray(item))){ arr = [].concat(...arr); } return arr; }
只去除一层:
一个很神奇的方法
Function.apply.bind([].concat,[]);
解释:
[].concat(...arr);
解释:a = [1,[3,2]] => [].concat(1,[3,2]) => [1].concat([3,2]) =>[1,3,2]
因为一层去除结合es6...
很容易实现,我们这里只支持完全扁平化
Last updated
Was this helpful?