数组扁平化
递归
let arr0 = [1, 2, [3, 4, 5, [6, 7], 8, {}]];
function flatArray(arr) {
return arr.reduce(
(acc, cur) =>
Array.isArray(cur) ? [...acc, ...flatArray(cur)] : [...acc, cur],
[]
);
}
const arr1 = flatArray(arr0);
console.log("arr0", arr0);
console.log("arr1", arr1);
迭代
let arr0 = [1, 2, [3, 4, 5, [6, 7], 8, {}]];
function flatArray(arr) {
while (arr.some((item) => Array.isArray(item))) {
arr = [].concat(...arr);
}
return arr;
}
const arr2 = flatArray(arr0);
console.log("arr2", arr2);
全是数字可以利用 toString()
实现
let arr0 = [1, 2, [3, 4, 5, [6, 7], 8]];
function flatArray(arr) {
return arr
.toString()
.split(",")
.map((item) => +item);
}