数组扁平化

将深层次数组变为一层数组,两种方法的思路其实感觉区别不大,期待后面有新思路

const array = [
    [[10,11]],
    
    1,
    [2, 3, 4],
    [[5, 6]],
    [[[7, 8, 9]]]
]
/**
 * 迭代 + concat()
 * @returns Array
 */
Array.prototype.myFlat = function () {
    let result = []
    this.forEach(item => {
        if (Array.isArray(item)) {
          result =   result.concat(item.myFlat())
        }
        else{
            result.push(item)
        }
    })
    return result
}
const array2 = array.myFlat()
console.log(array2)
/**
 * 迭代 + reduce + concat()
 * @returns Array
 */
Array.prototype.myFlat2 = function(){
   return this.reduce((total,item)=>{
        if(Array.isArray(item)){
            total = total.concat(item.myFlat2())
        }
        else{
            total.push(item)
        }
        return total
    },[])
}
const array3 = array.myFlat2()
console.log(array3)
posted @ 2025-07-08 09:58  我就起个名字不至于吧  阅读(5)  评论(0)    收藏  举报