0%

数组打平

reduce

1
2
3
4
5
6
7
const arr = [1, [1, 2], 3, [[1, 2, 3], 4], 5]
const foo = function (arr) {
return arr.reduce((total, curVal) => {
total = total.concat(curVal instanceof Array ? foo(curVal) : curVal)
}, [])
}
console.log(foo(arr))

flat

flat ES6 新增的数组拍平方法

1
2
const arr = [1, [1, 2], 3, [[1, 2, 3], 4], 5]
console.log(arr.flat(Infinity))

递归

1
2
3
4
5
6
7
8
9
const arr = [1, [1, 2], 3, [[1, 2, 3], 4], 5]
const foo = function (arr) {
let temp = []
for (let val of arr) {
val instanceof Array ? temp.push(...foo(val)) : temp.push(val)
}
return temp
}
console.log(foo(arr))

toString

1
2
3
4
5
6
7
8
const arr = [1, [1, 2], 3, [[1, 2, 3], 4], 5]

console.log(arr.toString().split(',').map(item => Number(item)))

// [
// 1, 1, 2, 3, 1,
// 2, 3, 4, 5
// ]
-------------本文结束感谢您的阅读-------------