1. reduce方法
const arr = [true,function(){},[{},[2,[3, 4]]]]
function f (arr) {
return arr.reduce((result, item) => {
return result.concat(Array.isArray(item) ? f(item) : item)
}, [])
}
2. toString
function toStr (arr) {
return arr.toString().split(',').map(item => {
return item
})
}
3. join ()
function join (arr) {
return arr.join(',').split(',').map(item => {
return item
})
}
4. 递归
function flatten (arr) {
var res = []
arr.forEach(item => {
if (Array.isArray(item)) {
res = res.concat(flatten(item))
} else {
res.push(item)
}
})
return res
}
5. 扩展运算符...
function flatten2 (arr) {
while (arr.some(item => Array.isArray(item))) {
arr = [].concat(...arr)
}
return arr
}
网友评论