码迷,mamicode.com
首页 > 编程语言 > 详细

多维数组转一维数组

时间:2018-03-10 01:29:23      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:for   function   isa   array   []   new   log   缺点   递归   

方法一:使用数组concat方法,这个方法是属于取巧的一种

var arr= [[0,0,1],[2,3,3],[4,4,5]];
var newArr = [];
for(var i=0;i<arr.length;i++){
     newArr=newArr.concat(arr[i])            
}
console.log(arr) //
[[0,0,1],[2,3,3],[4,4,5]];
console.log(newArr) // [0, 0, 1, 2, 3, 3, 4, 4, 5]

方法二:也是数组 join 方法,但是有一个缺点就是使数组每一项都变成了字符串

var arr=[1,[2,[[3,4],5],6]];
function getArr(arr){ 
return arr.join().split(",");
}
console.log(
getArr(arr));

方法三:递归

var arr = [1,[2,[[3,4],5],6]];
var newArr = [];
    
function fun(arr){
        for(var i=0;i<arr.length;i++){
            if(Array.isArray(arr[i])){
                fun(arr[i]);
            }else{
                newArr.push(arr[i]);
            }
        }
    }
fun(arr);
console.log(newArr);//[1, 2, 3, 4, 5, 6]

方法四:for in循环  递归

其实第四种跟第三种差不多,换用写法而已

var arr =[1,[2,[[3,4],5],6]];
var newArr=[];
function getArr(arr) {
for(var k in arr) {
if( arr[k] instanceof Array) {
getArr(arr[k]);
}
else { newArr.push(arr[k]);
}
}
return newArr;
}
console.log(getArr(arr));

多维数组转一维数组

标签:for   function   isa   array   []   new   log   缺点   递归   

原文地址:https://www.cnblogs.com/Scar007/p/8537089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!