javascript中怎么实现数组拍平
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,javascript中怎么实现数组拍平,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。首先是第一种方法,递归处理,代码如下
千家信息网最后更新 2025年02月04日javascript中怎么实现数组拍平
javascript中怎么实现数组拍平,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
首先是第一种方法,递归处理,代码如下:
var arr = [1, 2, 3, [3, 3, 3, [5, 4, 5, 6, 6, 7, 8]],
[333, 4444]
];
function product() {
// 1、创建一个空数组,
var newarr = [];
///2、并且返回一个函数,函数参数为要拍平的数组
return function flatten(arr) {
// 3、循环数组,判断每一项,不为输的话将其塞入newarr
// 若为数组,递归调用 faltten,并将结果与newarr合并
for (var t of arr) {
if (!Array.isArray(t)) {
newarr.push(t);
} else {
newarr.concat(flatten(t))
}
}
return newarr
}
}
var flatten = product();
console.log(flatten(arr))
执行结果为:
上面这这种方法比较中规中矩,代码详解见注释,下面这种方法运用到了javascript语言的一些新特性,代码如下:
var arr = [1, 2, 3, [3, 3, 3, [5, 4, 5, 6, 6, 7, 8]],
[333, 4444]
];
function flatten(arr){
return arr.reduce(function(pre,cur){
if(!Array.isArray(cur)){
return [...pre,cur];
}else{
return [...pre,...flatten(cur)]
}
},[])
}
console.log(flatten(arr))
上面代码中用了ES6的一个新特性扩展云算法 "...","[...abc,...fff]"其作用相当于abc.concat(fff),这种用法更加直观明了,还有就是运用了reduce方法。reduce是javascript语言中数组的一个方法。
数组调用recduce方法时,可以传递两个参数,第一个参数为回调函数,第二个参数为一个初始值。回调函数中需要传递两个参数,第一个参数为每次执行函数的返回值,第二个参数为当前索引对应数组的值。reduce的第二个参数是可以省略的,省略的话,回调函数第一次调用的参数为数组的第一项和第二项的值,如果没有省略,回调函数的第一个参数就是这个初始值。上面的例子,reduce的第二个参数设置了一个空数组。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
参数
数组
函数
方法
代码
两个
就是
特性
结果
语言
递归
帮助
清楚
直观
中规中矩
中用
作用
例子
内容
对此
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖北软件开发哪家实惠
java 创建数据库实例
bios 服务器dell
网络安全的真正龙头股
centos 连接别的服务器
知秋网络技术有限公司
数据库审计系统35亿条
简单介绍国家网络安全宣传周
男装设计软件开发
软件开发的九大模型需求分析
中国加强网络安全的措施
企业营销网络技术
数据库提取pkg怎么写
天龙八部手游进不去之前的服务器
数据库向表中查询数据代码
数据源数据库用户名和密码
金蝶服务器ip地址怎么修改
广州市圆梦网络技术有限公司
黄浦区营销软件开发代理品牌
广州智慧门禁软件开发怎么样
电脑架设网站服务器
教程视频软件开发
网络安全的英语对话
第一集网络安全法
h265和网络技术
找出图片中不同的数据库
手机开发 数据库
为了提高网络安全意识英语翻译
网络安全监督工程师是真假
hp服务器代理