数组扁平化
作者:互联网
数组扁平化就是将多维数组化为一维数组
递归的方式
function flatArr(arr) {
return arr.reduce((result, item) => {
return result.concat(Array.isArray(item) ? flatArr(item) : item)
}, [])
}
测试:
let arr = [1,2,3,[4,5],[6,[7,[8]]]]
console.log(flatArr(arr));
递归实现
function flatArr(arr) {
const result = []
const stack = [...arr]
while(stack.length != 0) {
//重点,从最后一个开始取
const val = stack.pop()
if(Array.isArray(val)) {
//遇到数组直接插入到stack的最后面
stack.push(...val)
} else {
//重点,插入到结果数组中需要从头插入
result.unshift(val)
}
}
return result
}
let arr = [1,2,3,[4,5],[6,[7,[8]]]]
console.log(flatArr(arr));
标签:arr,扁平化,val,flatArr,result,数组,stack 来源: https://www.cnblogs.com/taosifan/p/15401843.html