let arr = [1, [2, [3, [4, 5]]], 6];
let str = JSON.stringify(arr);
1.直接调用
arr_flat = arr.flat(Infinity);
2.
arr = str.replace(/(\[\]))/g, '').split(',');
3.
str = str.replace(/(\[\]))/g, '');
str = '[' + str + ']';
arr = JSON.parse(str);
4.递归处理
let result = [];
let fn = function(arr) {
for(let i = 0; i < arr.length; i++){
let item = arr[i];
if (Array.isArray(arr[i])){
fn(item);
} else {
result.push(item);
}
}
}
5.用 reduce 实现数组的 flat 方法
function flatten(ary) {
return ary.reduce((pre, cur) => {
return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);
})
}
let arr = [1, 2, [3, 4], [5, [6, 7]]];
console.log(arr.MyFlat(Infinity))
6.扩展运算符
while (arr.some(Array.isArray)) {
arr = [].concat(...ary);
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。