var arr = [1, 3, 4, 5, [6, [0, 1, 5], 9],
[2, 5, [1, 5]],
[5]
];
//es6新增的方法
console.log(arr.flat(Infinity));
function flatten(array, result = []) {
//循环数组中的每一项,如果这一项是数组,则再次调用这个函数,
//否则直接将这项push到结果中,并且return出来
for (var i of array) {
if (Array.isArray(i)) {
flatten(i, result)
} else {
result.push(i)
}
}
return result;
}
console.log(flatten(arr));
var result = []
function unfold(arr) {
for (var i = 0; i < arr.length; i++) {
if (typeof arr[i] == "object") {
result.concat(unfold(arr[i]));
} else {
result.push(arr[i]);
}
}
return result
}
let s = unfold(arr)
console.log(s);
var c = [1, 3, 4, 5, [6, [0, 1, 5], 9],
[2, 5, [1, 5]],
[5]
];
var b = c.toString().split(',').map(item => {
return parseInt(item)
})
console.log(b);
const flatten1 = arr => arr.reduce((a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), []);
var result = flatten1(arr)
console.log(result);
一些扁平化多维数组的方法
最新推荐文章于 2023-02-13 16:43:47 发布