如何使用JavaScript方式实现数组扁平化
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章给大家分享的是有关如何使用JavaScript方式实现数组扁平化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、数组扁平化概念数组扁平化是指将一个多维数组变为一维
千家信息网最后更新 2025年11月10日如何使用JavaScript方式实现数组扁平化一、数组扁平化概念
这篇文章给大家分享的是有关如何使用JavaScript方式实现数组扁平化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
一、数组扁平化概念
数组扁平化是指将一个多维数组变为一维数组
[1, [2, 3, [4, 5]]] ------> [1, 2, 3, 4, 5]
二、实现
1. reduce
遍历数组每一项,若值为数组则递归遍历,否则concat。
function flatten(arr) { return arr.reduce((result, item)=> { return result.concat(Array.isArray(item) ? flatten(item) : item); }, []);}reduce是数组的一种方法,它接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。reduce包含两个参数:回调函数,传给total的初始值
// 求数组的各项值相加的和: arr.reduce((total, item)=> { // total为之前的计算结果,item为数组的各项值 return total + item;}, 0);2. toString & split
调用数组的toString方法,将数组变为字符串然后再用split分割还原为数组
function flatten(arr) { return arr.toString().split(',').map(function(item) { return Number(item); })}因为split分割后形成的数组的每一项值为字符串,所以需要用一个map方法遍历数组将其每一项转换为数值型
3. join & split
和上面的toString一样,join也可以将数组转换为字符串
function flatten(arr) { return arr.join(',').split(',').map(function(item) { return parseInt(item); })}4. 递归
递归的遍历每一项,若为数组则继续遍历,否则concat
function flatten(arr) { var res = []; arr.map(item => { if(Array.isArray(item)) { res = res.concat(flatten(item)); } else { res.push(item); } }); return res;}5. 扩展运算符
es6的扩展运算符能将二维数组变为一维
[].concat(...[1, 2, 3, [4, 5]]); // [1, 2, 3, 4, 5]
根据这个结果我们可以做一个遍历,若arr中含有数组则使用一次扩展运算符,直至没有为止。
function flatten(arr) { while(arr.some(item=>Array.isArray(item))) { arr = [].concat(...arr); } return arr;}感谢各位的阅读!关于"如何使用JavaScript方式实现数组扁平化"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
数组
扁平
字符
字符串
方法
运算符
递归
运算
方式
内容
函数
更多
篇文章
结果
一维
不错
实用
两个
参数
数值
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
济南软件开发平均工资
中华古籍经典数据库
5GB的数据库算大吗
财政局 网络安全 信息
dhcp服务器 自动
java应用软件开发考研
软件开发企业安全培训
河北ai服务器直销厂家
阿里数据库备份
合肥移远通信软件开发加班多吗
广西钦州软件开发公司
大学生计算机网络技术规划书
安卓软件开发实践周士凯
信息网络安全读书报告
交通大学网络安全技术研究院
监狱系统网络安全管理岗位
网络安全高维攻击
网络安全管理制度建立与落实
浅谈网络安全领域
sw2021无法连接到服务器
华为通用软件开发本科生
无线网络安全设置wep
邯郸网络安全测试
在美国网络安全
成都宏微观经济学模拟软件开发
最快的写数据库方法
流数据库 柏睿
软件开发公司怎么打广告
三易网络安全儿童画
靖州国家网络安全宣传