2022-02-27--手撕数组降维方法

2022-02-27  本文已影响0人  派大星星

主要用到的思想是递归;另外数组降维也有一个flat()

//数组降维  主要思想是递归
let arr = [1, 2, 3,[4, 5, 6, 7,[4, 3, 2, [554543, 2423], 6]], 0]
let flatten = (arr=[]) => {
    // 首先建立一个[]数组
    //判断数值是不是数组,如果是数字,就放到空数组里面
    //如果是数组就再次使用flatten方法 --递归思想
    return arr.reduce((pre, cur) => {
        //如果reduce 的第二个参数存在,
        // 那 pre 初始值就是 第二个参数 这里是[]
        //而 cur 就是数组的第一项元素 1(这里是1)
        //这里的return是将数组保存起来,用于下一次pre
        return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);
    }, [])
}
let res = flatten(arr)
console.log(JSON.stringify(res),'111')
上一篇 下一篇

猜你喜欢

热点阅读