【问题标题】:Rearrange 2-dimensional array dynamically [duplicate]动态重新排列二维数组[重复]
【发布时间】:2014-08-21 11:43:20
【问题描述】:

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

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

没用

【问题讨论】:

  • 尝试用 Google 搜索 JavaScript 中的数组 transposition
  • 外循环应该迭代arr[0].length 次,而内循环应该迭代arr.length 次。

标签: javascript arrays


【解决方案1】:

两个问题:

  1. 为 i 初始化 multi2 子数组。
  2. 您的 i 和 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])
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-25
    • 2014-08-26
    • 2012-08-11
    • 2019-02-26
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    相关资源
    最近更新 更多