Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态重排二维数组_Javascript_Arrays - Fatal编程技术网

Javascript 动态重排二维数组

Javascript 动态重排二维数组,javascript,arrays,Javascript,Arrays,如何动态转换此类型的数组: [ [a,b,c], [d,e,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]) } } 它不起作用有两个问题: 为i初始化multi2子阵列

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

[
    [a,b,c],
    [d,e,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])
    }
}
它不起作用

有两个问题:

为i初始化multi2子阵列。 你的i和j在内部循环中混淆了。 这里有一个


尝试在JavaScript中搜索数组转置。外部循环应迭代arr[0].length次,而内部循环迭代arr.length次。
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])
    }
}
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])
  }
}