1. 递归调用
let res = [];
function flattern(arr) {
arr.map(item => {
if (Array.isArray(item))
res.concat(flattern(item));
else
res.push(item);
})
}
2. reduce结合递归
function flattern(arr) {
return arr.reduce((data, item) => {
return data.concat(
Array.isArray(item) ? flat(item) : item);
}, []);
}
3. 使用数组some遍历,只要数组里面含有数组则解构一次
while (arr.some(Array.isArray)) {
arr = [].concat(...arr);
}
4. 字符串替换
arr = JSON.stringify(arr);
arr = arr.replace(/[|]/g, '');
arr = '[' + arr + ']';
arr = JSON.parse(arr);
5. 使用原生方法
arr = arr.flat(Infinity);