美文网首页
数组-flat

数组-flat

作者: skoll | 来源:发表于2022-07-18 23:01 被阅读0次

    描述

    flat方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组元素合并为一个新数组返回

    语法

    let arr=[1,[2,3],[[3,3,3]]]
    arr.flat(1)
    arr.flat(Infinity)
    console.log(arr.flat(Infinity))
    

    细节

    1 .不会改变原数组
    2 .也需要用一个新数组来返回他
    3 .flat会移除数组里面的空项

    疑问

    1 .一个不知道深度的数组,如何变成1维数组,Infinity
    2 .自己实现语法

    function* flatten(arr){
        for(const i of arr){
            if(Array.isArray(i)){
                yield* flatten(i)
            }else {
                yield i
            }
        }
    }
    
    console.log(arr.flat(Infinity))
    console.log([...flatten(arr)])
    //这个是最简单的
    
    function flatten2(arr){
        for(const i of arr){
            if(Array.isArray(i)){
                return flatten2(i)
            }else {
                return i
            }
        }
    }
    //这样递归是完全不行的
    

    相关文章

      网友评论

          本文标题:数组-flat

          本文链接:https://www.haomeiwen.com/subject/lxrqirtx.html