当前位置:网站首页>flat() :递归地将数组展平到指定的深度
flat() :递归地将数组展平到指定的深度
2022-08-09 02:50:00 【油墨香^_^】
JavaScript Array flat() 方法介绍
ES2019 引入了 Array.prototype.flat() 方法,该方法创建一个新数组,其中子数组的所有元素递归连接到指定深度。
下面显示了 flat() 方法的语法:
let newArray = arrayObject.flat([depth])depth 参数指定该方法使数组结构平坦的深度,它默认为 1。
下面的例子展示了如何扁平化一个数字数组:
const numbers = [1, 2, [3, 4, 5]];const flatNumbers = numbers.flat();console.log(flatNumbers);
输出:
[1, 2, 3, 4, 5]在这个例子中,我们没有将深度参数传递给 flat() 方法,因此深度默认为 1。flat() 方法将嵌套数组 [3,4,5] 的所有元素连接到新数组的元素。
请注意, flat() 方法会创建一个新数组并且不会更改原始数组:
console.log(numbers);输出:
[ 1, 2, [ 3, 4, 5 ] ]以下示例将具有两级深度的数组展平
const numbers = [1, 2, [3, 4, 5, [6, 7]]];const flatNumbers = numbers.flat(2);console.log(flatNumbers);
输出:
[1, 2, 3, 4, 5, 6, 7]当我们不知道深度级别时,可以将 Infinity 传递给 flat() 方法,以递归方式将子数组的所有元素连接到新数组中:
const numbers = [1, 2, [3, 4, 5, [6, 7, [8, 9]]]];const flatNumbers = numbers.flat(Infinity);console.log(flatNumbers);
如果一个数组有空槽,我们可以使用 flat() 方法去除空洞,像这样
const numbers = [1, 2, , 4, , 5];const sequence = numbers.flat();console.log(sequence);
输出:
[ 1, 2, 4, 5 ]总结
使用 Array.prototype.flat() 方法将包含嵌套数组的数组展平。
使用 depth 参数指定嵌套数组应该展平的深度,深度默认为 1。
flat() 还删除了数组中带有空槽的孔。
边栏推荐
- OpenLORIS-Object Datasets
- 工作小计 rtcp的length和网络字节序
- [LeetCode305周赛] 6136. 算术三元组的数目,6139. 受限条件下可到达节点的数目,6137. 检查数组是否存在有效划分,6138. 最长理想子序列
- C专家编程 第8章 为什么程序员无法分清万圣节和圣诞节 8.10 轻松一下---国际C语言混乱代码大赛
- 【信号去噪】基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附matlab代码
- 【扫雷--1】
- 原文翻译:Structure Aware Single-stage 3D Object Detection from Point Cloud
- 【图像增强】基于Step和Polynomial 滤波实现图像增强附matlab代码
- 关于eBPF与可观测性,你想知道的都在这里
- 【电商运营】不知道怎么做网站优化?这里有你需要知道的一切!
猜你喜欢
随机推荐
书签收藏难整理?这款书签工具管理超方便
C专家编程 第9章 再论数组 9.1 什么时候数组与指针相同
20220526动态规划:不同路径
7月更新速递 | 产品实验室N+1,EasyV For Unreal上线!
Postman interface test [official website] latest version installation and use tutorial
online schema change and create index
用DFS解决最终幻想13-2时钟谜题
OJ:L3-021 神坛 伪解 排序后遍历
Processing Point Clouds
LintCode 146. 大小写转换 II
多态 polymorphism
MVVM项目开发(商品管理系统二)
“蔚来杯“2022牛客暑期多校训练营7,签到题CFGJ
OJ:L2-012 关于堆的判断
JS 实现千分位分隔符
C专家编程 第9章 再论数组 9.2 为什么会发生混淆
What aspects should we start with for interface security testing?
gpio子系统和pinctrl子系统(上)
[TensorRT] 对UNet进行推理加速
评估深度学习模型的指标:混淆矩阵、准确率、精确率和召回率









