javascript中怎么实现数组拍平
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,javascript中怎么实现数组拍平,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。首先是第一种方法,递归处理,代码如下
千家信息网最后更新 2026年11月02日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安全错误
数据库的锁怎样保障安全
互联网金融科技
伟宏互联网科技
互联网科技产业
互联网与科技发展
青岛互联网科技公司
深圳天众互联网科技公司
互联网科技中介
金融科技与互联网金融相同和不同
苏州五指互联网络科技有限
辽宁互联网新科技
广州市恰铎互联网科技有限公司
翼展科技 首家互联网医院
特约风豹互联网科技为什么扣费
宇信科技在杭州互联网排第几
35岁以上互联网科技行业
九思连强互联网电子科技有限公司
互联网科技新闻
好易买互联网科技
三亚科技创新互联网基地
华人运通互联网科技公司
伟宏互联网科技
互联网是不是新科技
金诺互联网科技
万易互联网科技有限公司
唐信互联网科技 大连
成都仁贤领冠互联网科技有限公司
畅思互联网科技
徐州市互联网科技有限公司
宇信科技在杭州互联网排第几
青岛易易互联网科技