es6数组的flat(),flatMap()函数用法实例分析

 更新时间:2020年04月18日 11:05:23   作者:wangliang_001  
这篇文章主要介绍了es6数组的flat(),flatMap()函数用法,结合实例形式分析了es6数组的flat(),flatMap()函数基本功能、使用方法及操作注意事项,需要的朋友可以参考下

本文实例讲述了es6数组的flat(),flatMap()函数用法。分享给大家供大家参考,具体如下:

数组的成员有时还是数组,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()只能展开一层数组。

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

  • js实现简单音乐播放器

    js实现简单音乐播放器

    这篇文章主要介绍了js实现简单音乐播放器,可拖动进度条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • js实时获取并显示当前时间的方法

    js实时获取并显示当前时间的方法

    这篇文章主要介绍了js实时获取并显示当前时间的方法,涉及javascript针对时间及页面元素的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • JavaScript实现简单进度条效果

    JavaScript实现简单进度条效果

    这篇文章主要为大家详细介绍了JavaScript实现简单进度条效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • JS实现键值对遍历json数组功能示例

    JS实现键值对遍历json数组功能示例

    这篇文章主要介绍了JS实现键值对遍历json数组功能,结合实例形式分析了javascript遍历json数组相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • offsetHeight在OnLoad中获取为0的现象

    offsetHeight在OnLoad中获取为0的现象

    需要获取div的高度时,往往需要用到offsetHeight,有时会碰到offsetHeight获取到为0的现象,感兴趣的朋友可以参考下面的代码片段
    2013-07-07
  • WebGL 颜色与纹理使用介绍

    WebGL 颜色与纹理使用介绍

    这篇文章主要为大家介绍了WebGL 颜色与纹理使用介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • 微信小程序购物车、父子组件传值及calc的注意事项总结

    微信小程序购物车、父子组件传值及calc的注意事项总结

    这篇文章主要给大家介绍了关于微信小程序购物车、父子组件传值及calc的注意事项的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗

    Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗

    这篇文章主要介绍了Bootstrap编写一个在当前网页弹出可关闭的对话框,不用跳转,非弹窗,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • 一文带你了解JavaScript垃圾回收机制

    一文带你了解JavaScript垃圾回收机制

    JS自带一套内存管理引擎,负责创建对象、销毁对象,以及垃圾回收,下面这篇文章主要给大家介绍了关于JavaScript垃圾回收机制的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • JavaScript递归函数解“汉诺塔”算法代码解析

    JavaScript递归函数解“汉诺塔”算法代码解析

    这篇文章主要介绍了JavaScript递归函数解“汉诺塔”算法代码解析,需要的朋友可以参考下
    2018-07-07

最新评论