美文网首页
数组-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

    实现一个方法,能够把多重数组变成一个一维数组

  • 数组-flat

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

  • js函数实现:数组扁平化、防抖、节流、对象拷贝

    1.数组扁平化初探 ES6中数组的扩展引入了flat和flatMap:数组的flat方法: 数组的flatMap方...

  • flat

    js Array flat flat() 方法会递归到指定深度将所有子数组连接,并返回一个新数组 详细参考

  • 数组flat实现

    利用数组的reduce和concat实现数组flat,并可传参

  • js中数组flat方法的使用和实现

    js中数组flat方法的使用和实现 定义 flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历...

  • Array.prototype.flat()和flatMap()

    数组的成员有时还是数组,Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维数组。该方法...

  • es6之数组的flat(),flatMap()数组拉平

    数组的成员有时还是数组,Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维数组。该方法...

  • 数组扁平化方法

    数组扁平化方法 1、Array.flat()默认是“拉平”一层,即arr.flat(1)参数使用 Infinity...

  • 手写数组的 flat

    原理就是,先在内部生成一个新数组,遍历原来的数组 当原数组内 存在数组并且层级deep大于等于1时进行递归, 如果...

网友评论

      本文标题:数组-flat

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