方法一:递归
function flatten(arr) {
let copy = [];
for(let index=0;index<arr.length; index++) {
if(arr[index] instanceof Array) {
console.log(arr[index]);
copy = copy.concat(flatten(arr[index]));
//concat不修改原数组,返回一个新数组
}
else {
copy.push(arr[index]);
}
}
return copy;
}
方式二 使用reduce
function flatten(arr) {
let result = [];
while(arr.some((ele=>Array.isArray(ele)))){
result = [].concat(...arr);
}
}
方式三 转换字符串后处理
function flatten(arr) {
return arr.toString().split(',').map((ele)=>+ele);
}
方式四 扩展运算符…
function flatten(arr) {
while(arr.some(item=>Array.isArray(item))) {
arr = [].concat(...arr);
}
return arr;
}