本文共 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/