es6数组的flat()方法

es6数组的flat()方法Array.prototype.flat()flat()方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。Array.prototype.flat()用于将嵌套的数组“扁平化”,将二维数组变成一维数组。该方法返回一个新数组,对原数据没有影响。语法:varnewArray=arr.flat([depth])参数:depth可选,指定要提取嵌套数组的结构深度,默认值为1。返回值:一个包含数组与子数组中所有元素的新数组。示例:var

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

Array.prototype.flat()

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

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

语法

var newArray = arr.flat([depth])

参数:depth 可选,指定要提取嵌套数组的结构深度,默认值为 1。

返回值:一个包含数组与子数组中所有元素的新数组。

示例

var arr1 = [
    [0, 1],
    [2, 3],
    [4, 5]
]
var arr2 = arr1.flat()
console.log(arr2)   // [0, 1, 2, 3, 4, 5]

var arr = [1, 2, [3, 4, [5, 6]]];
console.log(arr.flat());   // [1, 2, 3, 4, [5, 6]]
console.log(arr.flat(2));  // [1, 2, 3, 4, 5, 6]

使用 Infinity,可展开任意深度的嵌套数组:

var arr3 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]];
console.log(arr3.flat(Infinity));  // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

flat() 方法会移除数组中的空项:

var arr4 = [1, 2, , 4, 5];
console.log(arr4.flat());   // [1, 2, 4, 5]

flat()方法的替代方案:使用reduce()和concat()

var arr1 = [
    [0, 1],
    [2, 3],
    [4, 5]
]
var arr2 = arr1.reduce((arr,item)=>arr.concat(item),[])
console.log(arr2)  // [0, 1, 2, 3, 4, 5]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 海量数据处理分析

    海量数据处理分析 笔者在实际工作中,有幸接触到海量的数据处理问题,对其进行处理是一项艰巨而复杂的任务。原因有以下几个方面:一、数据量过大,数据中什么情况都可能存在。如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条数据,也可以考虑,如果数据上到千万级别,甚至过亿,那不是手工能解决的了,必须通过工具或者程序进行处理,尤其海量的数据中,什么情况都可能存在,例如,数据中某处格式出了问题

    2022年6月23日
    35
  • vscode注释快捷键失效_代码变成注释快捷键

    vscode注释快捷键失效_代码变成注释快捷键目录1.单行注释2.多行或块注释1.单行注释ctrl+/:C中产生双斜线注释或取消双斜线注释,未在其它语言使用,暂未知//注释类型2.多行或块注释shift+alt+A:C中产生/**/注释或取消/**/注释,未在其它语言使用,暂未知/*注释类型*/…

    2022年8月15日
    6
  • oracle 正则 x00-xff,xff(xff头注入)

    oracle 正则 x00-xff,xff(xff头注入)你好!\xff(十六进制转义序列,对应的十进制ASCII码是255,在扩展ASCII中)\xhh代表十六进制模式希望对你有所帮助,望采纳。一到二位十六进制数所代表的字符,是c的转义字符没见过这种正则,如果是[^\x00-\xFF]表示匹配Ascii码大于255的那些字符了a328846994的说法完全错误。’\xff’这个是合法的,表示扩展ASCII码为255的字符,xff表示16进制f…

    2022年6月23日
    118
  • Linux安装JDK

    Linux安装JDKLinux安装JDK

    2022年4月22日
    38
  • log4j conversionpattern详解_log4j配置文件

    log4j conversionpattern详解_log4j配置文件#locallog4j.rootCategory=ERROR,stdout,report-error#online#log4j.rootCategory=ERROR,report-error#Consolelog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdou…

    2022年8月22日
    6
  • HDU 1711 Number Sequence(算法验证)

    HDU 1711 Number Sequence(算法验证)

    2022年1月3日
    50

发表回复

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

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