flat
[1,2,3,[4,6,]].flat(n) // n代表维度,结果为[1, 2, 3, 4, 6]
toString
arr.toString() // '1,2,3,4,5'
lodash方式
_.flatMapDeep(arr)
递归扁平化
var arr = [1, 2, 3, [2, 3, 4, 5, [6, 7, 8]]]
var newarr = []
function flatarr(arr) {
arr.forEach(item => {
if (Array.isArray(item)) {
flatarr(item)
} else {
newarr.push(item)
}
})
return newarr
}
console.log(flatarr(arr))
// 巧妙的方法
var arr = [1, 2, 3, [2, 3, 4, 5, [6, 7, 8]]]
function flatarr(arr) {
while (arr.some(item => Array.isArray(item))) {
arr = [].concat(...arr)
}
return arr
}
console.log(flatarr(arr))