1、方法一
使用for循环,来看这个元素是否是数组,是数组就需要递归进行处理扁平化,然后再假如在之前的结果中。
function flatter(arr) {
let res = [];
for (let i = 0; i < arr.length; ++i) {
if (Array.isArray(arr[i])) {
res.push(...flatter(arr[i]));
} else {
res.push(arr[i]);
}
}
return res;
}
二、方法二
因为reduce函数的特性,我们可以进行递归进行处理。
function flatter(arr) {
return arr.reduce((pre, cur) => {
if (Array.isArray(cur)) {
return pre.concat(flatter(cur));
} else {
return pre.concat(cur);
}
}, []);
}