2012-10-13 148 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

相關問題