动态重新排列二维数组

时间:2014-07-01 01:46:01

标签: javascript arrays

如何动态转换这种类型的数组:

[
    [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])
    }
}

它不起作用

1 个答案:

答案 0 :(得分:-1)

两个问题:

  1. 为i。初始化你的multi2子阵列。
  2. 你的i和j在内循环中混淆了。
  3. 这里是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])
      }
    }