数组扁平化

148 阅读1分钟
一、数据扁平化
function flatten(arr){
    // 声明空数组
    let result = []
    // 遍历数组
    arr.forEach(item=>{
        // 如果是数组执行递归
        if(Array.isArray(item)){
            result = result.concat(flatten(item))
        }else{
            result = result.concat(item)
        }
    })
    return result
}
let arr = [1, [2, 3, [4, [5]]], 6, 7]
let result = flatten(arr)
console.log(result)
二、数据扁平化
function flatten2(arr){
    // 复制一个数组
    let result = [...arr]
    // 如果其中有一个为真就返回
    while(result.some(item =>Array.isArray(item))){
        result = [].concat(...result)
    }
    return result
}
let arr = [1, [2, 3, [4, [5]]], 6, 7]
let result = flatten2(arr)
console.log(result) // [1, 2, 3, 4, 5, 6, 7]