2014-07-01 115 views
0

如何動態轉換此類型的陣列:重新排列2維陣列動態

[ 
    [a,b,c], 
    [d,e,f], 
] 

[ 
    [a,d], 
    [b,e], 
    [c,f], 
] 

第一陣列的長度不總是具有相同的尺寸。

嘗試以下

for (var i = 0; i < multi.length; i++) { // 2 
    for (var j = 0; j < multi[i].length; j++) { // 3 
     multi2[j].push(multi[j][i]) 
    } 
} 

它不工作

+0

嘗試使用谷歌搜索陣列** **換位在JavaScript中。 –

+0

外循環應迭代'arr [0] .length'次,而內循環迭代'arr.length'次。 –

回答

-1

兩個問題:

  1. 初始化您MULTI2子陣的我。
  2. 你有你的我和j在內部循環混淆。

這裏有一個fiddle

var multi = [ 
    ["a","b","c"], 
    ["d","e","f"], 
    ["g","h","i"], 
] 
var multi2 = []; 

for (var i = 0; i < multi.length; i++) { // 3 
    for (var j = 0; j < multi[i].length; j++) { // 3 
    multi2[j] = multi2[j]||[]; // initialize subarray if necessary 
    multi2[j].push(multi[i][j]) 
    } 
}