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()只能展开一层数组。

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

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

(0)
上一篇 2022年5月30日 下午7:16
下一篇 2022年5月30日 下午7:36


相关推荐

  • 即梦AI

    即梦AI

    2026年3月13日
    2
  • ubuntu ipsec配置_ubuntu安装iperf3

    ubuntu ipsec配置_ubuntu安装iperf3ipsetpackageinUbuntuipset:administrationtoolforkernelIPsetsipset-dbgsym:debugsymbolsforipsetlibipset-dev:developmentfilesforIPsetslibipset13:libraryforIPsetslibipset13-dbgs…

    2022年10月7日
    4
  • java socket详解_Java Socket 编程原理及教程「建议收藏」

    java socket详解_Java Socket 编程原理及教程「建议收藏」原标题:JavaSocket编程原理及教程对于JavaSocket编程而言,有两个概念,一个是ServerSocket,一个是Socket。服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了。首先ServerSocket将在服务端监听某个端口,当发现客户端有Socket来试图连接它时,它会accept该Socket的连接请求,同时在服务端建立一个对应的Socket与之进行通…

    2022年10月18日
    5
  • 牛站_牛客网站

    牛站_牛客网站链接https://www.acwing.com/problem/content/submission/code_detail/1207146/题目给定一张由T条边构成的无向图,点的编号为1~1

    2022年8月3日
    10
  • java对象转换为json字符串_java中将字符串转换为json

    java对象转换为json字符串_java中将字符串转换为json概要Jackson是基于java平台的json处理框架。Jackson提供了三种可选的json处理方法:流式API、树模型、数据绑定(dataBinding),其中数据绑定是最常用的处理方式;本文主要介绍数据绑定的处理方式。java对象与json字符串互相转换java对象与json字符串互相转换的关键就是ObjectMapper对象的writeValue()方法和readValue()方法;其中json字符串可以字符串的形式传入/传出,也可以以文件的形式传入/传出,见wri.

    2025年11月30日
    11
  • navicat15.0.22激活码【在线注册码/序列号/破解码】

    navicat15.0.22激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    90

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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