1.普通方法
var arr = [[1], [[2,3], 4], [5,6,7]];
function fMd(arr) {
var result = [];
function f(arr) {
for (var i=0; i<arr.length;i++) {
console.log(arr[i]); //[1] [[2,3], 4] [5,6,7]
if (Array.isArray(arr[i])) { //如果arr[i] 是数组,则继续循环
f(arr[i]);
} else {
result.push(arr[i]);
}
}
}
f(arr);
return result;
}
console.log(fMd(arr)); //[1,2,3,4,5,6,7]
2.使用forEach
var arr = [[1], [[2,3], 4], [5,6,7]];
function all (arr) {
var res = [];
function f (arr) {
arr.forEach(x => {
if (Array.isArray(x)) {
f(x);
} else {
res.push(x);
}
})
}
f(arr);
return res;
}
console.log(all(arr)); // [1, 2, 3, 4, 5, 6, 7]
3.使用concat
参考博客: