Navigation

    西南IT社区
    • Register
    • Login
    • Search
    • 主页
    • 问答
    • 话题
    • 热门
    • 圈子
    • 工作机会
    • 活动
    • 项目

    如何用js实现数组扁平化

    极客生涯
    如何用js实现数组扁平化
    1
    1
    42
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      banyuankang9 last edited by

        数组扁平化又数组拍平,其实它的概念很简单,意思是将一个“多维”数组降维。
        那么方法是什么呢?在JavaScript标准库中已经实现了数组拍平方法Array.prototype.flat()flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。

        语法:var newArray = arr.flat([depth])

        参数:depth为可选值,表示要遍历多维数组的深度,默认值为1。可以理解为想要展开(或者说降维)的层数。

        返回值:遍历到的元素和子数组的元素组合成的新数组

        flat方法展开一层(降1维)的步骤:遍历数组,判断当前元素是否为数组,如果不是数组,直接保存;如果是数组,将其展开后保存

        flat方法展开多层(降多维)无非就是在展开一层的基础上,使用递归将数组子元素进行同样的操作。可以将这个方法拆分成三步:如何遍历数组。如何判断元素是否为数组。递归。实现上述三步,将他们组合起来就可以得到不同的flat实现。
      3838ee9e-49d6-45f6-b704-1b3b5ca6b242-image.png

      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      使用HTML构建办公软件 使用HTML构建办公软件 使用HTML构建办公软件
      B
      娇
      玩
      1
      光
      A
      庆
      小
      U
      Y
      L
      I
      Z
      I
      Y
      C
      Z
      E
      Y
      U
      I
      A
      Z
      Y
      Y

      西南地区IT社群(QQ)
      云南
      【昆明网页设计交流吧】243627302
      【昆明nodejs交流吧】 243626749
      【VUE】838405306
      【云南程序员总群】343606807
      【昆明UI设计】104031254
      【云南软件外包】15547313
      贵州
      【PHP/java源码/站长交流群】55692114
      四川
      【成都Java/JavaWeb交流】86669225
      【vaScript+PHP+MySql】116270060
      【UI设计/设计交流学习群】135794928
      重庆
      【诺基亚 JAVA游戏博物馆】 559479780
      【PHP,Java,Python,C++接单】 442103442
      西藏
      社群
      昆明网页设计交流吧
      友情链接
      • Funtask
      • Funtask 社区
      • SUWIS
      ©2019-2021 滇ICP备20006698号