博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将嵌套的数组扁平化
阅读量:2391 次
发布时间:2019-05-10

本文共 677 字,大约阅读时间需要 2 分钟。

对于一个像这样的嵌套数组:a=[1,[2,[3,4]],5,6]我们想要把它变成一个一维数组,有下面几种方法:

方法一 :递归

function parseArr(arr,res){
var i=0; for(i=0;i

方法二: 使用toString先变成一个字符串再使用split变成一个字符串数组(数组中的每个元素是一个字符串),最后使用map方法将数组中的每个元素返回为非字符串。

var arr=a.toString().split(',').map(function(ele){
return +ele;});alert(typeof arr[0]); //number
1
2
3
4

方法三: 使用reduce和concat方法

Array.prototype.flatten=function(){
return this.reduce(function(prev, cur) {
var moreArr = [].concat(cur).some(Array.isArray); //判断cur是不是一个数组 return prev.concat(moreArr ? cur.flatten() : cur); },[]);};var arr=a.flatten();
1
2
3
4
5
6
7

参考资料:

转载地址:http://gclab.baihongyu.com/

你可能感兴趣的文章
使用SAP云平台 + JNDI访问Internet Service
查看>>
如何在Chrome development tool里查看C4C前台发送的请求细节
查看>>
微信小程序开发系列四:微信小程序之控制器的初始化逻辑
查看>>
微信小程序开发系列教程三:微信小程序的调试方法
查看>>
01串排序(stl set使用)
查看>>
KMP算法实现
查看>>
KMP实现(二)
查看>>
C++要点(五)-多重继承和虚继承
查看>>
中缀表达式转后缀表达式并计算后缀表达式的值...
查看>>
有序链表的合并(递归实现)
查看>>
什么是程序员的优秀品质?
查看>>
咋想...
查看>>
数组逆序输出(递归)
查看>>
大数据量,海量数据处理方法总结(转)
查看>>
整数划分(计数)
查看>>
整数划分(计数+划分显示)
查看>>
signed和unsigned的比较
查看>>
C语言深度剖析总结(一)
查看>>
Big Endian和Little Endian的转换...
查看>>
不用sizeof(), 判断系统是32位还是16位...
查看>>