2012-10-13 109 views
0

我想给出一个javascript数组和一个数字变量来从数字创建新数组,然后将“大”数组的每个成员推送到子数组。从阵列的第一个值进入到第一子阵列的第二前进到第二子阵列,第3至第三etc.Here为i如何与2个阵列做到这一点:将数组中的每个值推送到多个子数组

r1=new Array(); 
r2=new Array(); 

for(var i=0; i<array.length; i++){ 
    if(i%2 == 0){ 
    r1.push(array[i]); 
    } 
    else 
    { 
    r2.push(array[i]); 
    } 
} 

假设我们有一个数字变量是意义是子阵列,我们将不得不做

for(var j=0;j<number;j++){ 
    r[j]=[]; 
} 

,这是什么最好的解决办法吗?也许array.map可以帮助?谢谢。

回答

1

这是一个通用的解决方案,用于拆分N个阵列。它返回结果数组的数组。

function splitArray(src, num) { 
    var result = [], i; 
    // initalize output arrays 
    for (i = 0; i < num; i++) { 
     result.push([]); 
    } 
    // split results among the various output arrays 
    for (i = 0; i < src.length; i++) { 
     result[i % num].push(src[i]); 
    } 
    return(result); 
} 
+0

我没有权利(声誉)投票给你。非常感谢 – user1620572

+0

@wvxvw - 我修正了错误。返回声明中的父母是个人风格的选择。我使用它们是因为它可以防止多行或多行列返回值的错误。 – jfriend00

相关问题