es6之数组的flat(),flatMap()「建议收藏」

es6之数组的flat(),flatMap()「建议收藏」数组的成员有时还是数组,Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维数组。该方法返回一个新数组,对原数据没有影响。[1,2,[3,4]].flat()//[1,2,3,4]上面代码中,原数组的成员里面有一个数组,flat()方法将子数组的成员取出来,添加在原来的位置。flat()默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将f…

大家好,又见面了,我是你们的朋友全栈君。

数组的成员有时还是数组,Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维数组。该方法返回一个新数组,对原数据没有影响。

[1, 2, [3, 4]].flat()
// [1, 2, 3, 4]

上面代码中,原数组的成员里面有一个数组,flat()方法将子数组的成员取出来,添加在原来的位置。

flat()默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将flat()方法的参数写成一个整数,表示想要拉平的层数,默认为1。

[1, 2, [3, [4, 5]]].flat()
// [1, 2, 3, [4, 5]]
[1, 2, [3, [4, 5]]].flat(2)
// [1, 2, 3, 4, 5]

上面代码中,flat()的参数为2,表示要拉平两层的嵌套数组。

如果不管有多少层嵌套,都要转成一维数组,可以用Infinity关键字作为参数。

[1, [2, [3]]].flat(Infinity)
// [1, 2, 3]

如果原数组有空位,flat()方法会跳过空位。

[1, 2, , 4, 5].flat()
// [1, 2, 4, 5]

flatMap()方法对原数组的每个成员执行一个函数,相当于执行Array.prototype.map(),然后对返回值组成的数组执行flat()方法。该方法返回一个新数组,不改变原数组。

// 相当于 [[2, 4], [3, 6], [4, 8]].flat()
[2, 3, 4].flatMap((x) => [x, x * 2])
// [2, 4, 3, 6, 4, 8]

flatMap()只能展开一层数组。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138859.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java环境教程_java环境配置的详细教程(图文)

    java环境教程_java环境配置的详细教程(图文)本篇文章给大家带来的内容是关于java环境配置的详细教程(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。JAVA环境变量的配置:Path,JAVA_HOME,CLASSPATH一、右键我的电脑,属性,高级系统设置,点击环境变量二、然后就会弹出环境变量这个窗口,在系统变量编辑JAVA_HOME,如果没有就新建一个,把jkd的路径添加进去,如图三、配置CASSPATH,如果没有…

  • 一文搞懂什么是粒子群优化算法(Particle Swarm Optimization,PSO)【附应用举例】「建议收藏」

    一文搞懂什么是粒子群优化算法(Particle Swarm Optimization,PSO)【附应用举例】「建议收藏」粒子群优化算法1.1粒子群优化算法简介粒子群优化算法(ParticleSwarmOptimization,PSO)是进化计算的一个分支,是一种模拟自然界的生物活动的随机搜索算法。PSO模拟了自然界鸟群捕食和鱼群捕食的过程。通过群体中的协作寻找到问题的全局最优解。它是1995年由美国学者Eberhart和Kennedy提出的,现在已经广泛应用于各种工程领域的优化问题之中。1.1.1思想来源从动物界中的鸟群、兽群和鱼群等的迁移等群体活动而来。在群体活动中,群体中的每一个个体都会受益于所有成员在

    2022年10月11日
  • could not lock config file_dpkg frontend lock

    could not lock config file_dpkg frontend lockUbuntu安装软件报错问题错误信息E:Couldnotgetlock/var/lib/dpkg/lock-frontend-open(11:Resourcetemporarlyunavailable)解决办法:sudorm/var/lib/dpkg/lock-frontendsudorm/var/lib/dpkg/lock

  • 浙江新增python编程_9月起,浙江省八年级新增Python编程课,未来编程是处理大数据的手段…「建议收藏」

    浙江新增python编程_9月起,浙江省八年级新增Python编程课,未来编程是处理大数据的手段…「建议收藏」原标题:9月起,浙江省八年级新增Python编程课,未来编程是处理大数据的手段最近一个非常火爆的话题在家长群引起热议——浙江省中小学学习编程。浙江官方教育部宣布:今年9月份开始的新学期,三到九年级信息技术课将替换新教材。其中,八年级将新增Python课程内容。新高一信息技术编程语言由VB替换为Python,大数据、人工智能、程序设计与算法等内容按照教材规划五六年级开始接触。下面我们来具体看一…

  • linux配置虚拟ip_虚拟机静态ip

    linux配置虚拟ip_虚拟机静态ipLinux下配置网卡ip别名何谓ip别名?用windows的话说,就是为一个网卡配置多个ip。什么场合增加ip别名能派上用场?布网需要、多ip访问测试、特定软件对多ip的需要…andsoon.下面通过几个例子简单介绍一下如何使用ifconfig命令给网卡配置ip别名。一、首先为服务器网卡配置静态ip地址#ifconfigeth0192.168.6.99netmask25…

    2022年10月20日
  • java使用mongDB的根据数字大小比较查询 和 命令行基础查询

    java使用mongDB的根据数字大小比较查询 和 命令行基础查询java使用mongDB的根据数字大小比较查询 和 命令行基础查询

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号