方法1
function myFlatten(arr) {
let res = []
for(let i = 0
if(Array.isArray(arr[i])) {
res = res.concat(myFlatten(arr[i]))
}else {
res = res.concat(arr[i])
}
}
return res
}
方法2 -reduce
let arr = [1, 2, [3, 4, [5, 6]], [7, 8]];
function myFlatten(arr) {
return arr.reduce((target, cur) => {
if(Array.isArray(cur)) {
target = target.concat(myFlatten(cur));
}else {
target.push(cur);
}
return target
}, []);
}
方法3 使用while循环
let arr = [1, 2, [3, 4, [5, 6]], [7, 8]];
function myFlatten(arr) {
while(arr.some(item => Array.isArray(item))) {
arr = [].concat(...arr);
}
return arr
}
console.log(myFlatten(arr));