怎么从一个数组获得新数组?

1, 我想把一个数组按照3等分合成一个新数组


把这个数组
 var arr =   [ 
                [ "12" ], 
                [ "blob:http://localhost:8090/a23268b6-dde4-4ae8-a845-3fc0bc9c4ef8" ], 
                [ "12", "12" ], 
                [ "12" ], 
                [ "blob:http://localhost:8090/a23268b6-dde4-4ae8-a845-3fc0bc9c4ef8" ], 
                [ "12", "12" ] 
            ]
变成
var arr = [arr1,arr2]
        = [
            [
                [ "12" ], 
                [ "blob:http://localhost:8090/a23268b6-dde4-4ae8-a845-3fc0bc9c4ef8" ], 
                [ "12", "12" ]
            ],
            [
                [ "12" ], 
                [ "blob:http://localhost:8090/a23268b6-dde4-4ae8-a845-3fc0bc9c4ef8" ], 
                [ "12", "12" ]
            ]
        
        
        ]   
            

给个方法,急!3Q3Q?

阅读 3.1k
3 个回答
var arr =   [ 
        [ "12" ], 
        [ "blob:http://localhost:8090/a23268b6-dde4-4ae8-a845-3fc0bc9c4ef8" ], 
        [ "12", "12" ], 
        [ "12" ], 
        [ "blob:http://localhost:8090/a23268b6-dde4-4ae8-a845-3fc0bc9c4ef8" ], 
        [ "12", "12" ],
        [ "13" ], 
        [ "kkkkkkkkkkkkkkkkkkkkkkk" ], 
    ]
    //将一维数组按照数字等分为二维数组
    function two_dimension(arr,num){
        var arr1 = [],length=arr.length;
        for(var i=0;i<length;i+=num){
            var letarr = []
            if(length-i<num){//当数组不够等分的情况下
                for(var j=0;j<length-i;j++){
                    letarr.push(arr[i+j])
                }
            }else{
                for(var j=0;j<num;j++){
                    letarr.push(arr[i+j]);
                }
            }
            arr1.push(letarr)
        }
        return arr1;
    }
    console.log(two_dimension(arr,3))
    console.log(two_dimension(arr,4))
var arr =   [ 
                [ "12" ], 
                [ "blob:http://localhost:8090/a23268b6-dde4-4ae8-a845-3fc0bc9c4ef8" ], 
                [ "12", "12" ], 
                [ "12" ], 
                [ "blob:http://localhost:8090/a23268b6-dde4-4ae8-a845-3fc0bc9c4ef8" ], 
                [ "12", "12" ] 
            ]
   
var arr1 =  arr.splice(0,3);

arr = [arr1,arr]; // arr 这个结果就是你想要的结果
       

var arr = [

            [ "12" ], 
            [ "blob:http://localhost:8090/a23268b6-dde4-4ae8-a845-3fc0bc9c4ef8" ], 
            [ "12", "12" ], 
            [ "12" ], 
            [ "blob:http://localhost:8090/a23268b6-dde4-4ae8-a845-3fc0bc9c4ef8" ], 
            [ "12", "12" ] 
        ];

var bigArr = [],newArr = [];

for(var i = 1,length = arr.length+1;i<length;i++){



newArr.push(arr[i-1]);
if(i%3 === 0){
    bigArr.push(newArr);
    newArr = [];
}

}
console.log('bigArr.',bigArr);
你看看可以吗?

推荐问题