当前位置:网站首页>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() 还删除了数组中带有空槽的孔。
边栏推荐
- 【图像去噪】基于边缘增强扩散 (cEED) 和 Coherence Enhancing Diffusion (cCED) 滤波器实现图像去噪附matlab代码
- 多线程 (进阶+初阶)
- HMS Core分析服务智能运营6.5.1版本上线
- 搭建Eureka注册中心集群 ,实现负载均衡
- 20220524搜索和排序:搜索二维矩阵II
- Jenkins configuration nail notification
- “蔚来杯“2022牛客暑期多校训练营7,签到题CFGJ
- 高性能 MySQL(十二):分区表
- 书签收藏难整理?这款书签工具管理超方便
- 【图像增强】基于Step和Polynomial 滤波实现图像增强附matlab代码
猜你喜欢
如何实现canal数据同步
【图像增强】基于Step和Polynomial 滤波实现图像增强附matlab代码
Likou Brush Question Record 4.1-----209. The sub-array with the smallest length
带你做接口测试从零到第一条用例 总结
SA-SSD环境搭建——血与泪的教训
【图像去噪】基于边缘增强扩散 (cEED) 和 Coherence Enhancing Diffusion (cCED) 滤波器实现图像去噪附matlab代码
Zabbix 5.0 监控教程(四)
【面试整理】-- 多线程
如何实现有状态转化操作
全志平台双路LVDS配置
随机推荐
20220524搜索和排序:搜索二维矩阵II
Jenkins的环境部署,(打包、发布、部署、自动化测试)
【剑指offer】二进制中1的个数&&2的幂
What aspects should we start with for interface security testing?
【扫雷--1】
LintCode 283. 三数之中的最大值
"Lonely Walking on the Moon": Two choices of Duguyue, let a "middleman" become a big hero
时间复杂度和空间复杂度
快速乘写法
JavsScript系列-Promise的错误捕获
使用TensorRT对AlphaPose模型进行加速
Pytest+request+Allure实现接口自动化框架
grafana的panel点击title,没有反应,没有出现edit选项
科大讯飞笔试题复盘
独立机器连接cdh的spark集群,远程提交任务(绝对可以成功,亲测了n遍)
C专家编程 第9章 再论数组 9.7 轻松一下---软件/硬件平衡
1160. 拼写单词
数字 07 verilog仿真实例
button click animation
Cyclictest 简介 安装 测试