遍历嵌套数组,然后在JavaScript中对其重新排序

问题描述 投票:0回答:2

我正在尝试遍历嵌套数组并将它们重新排序为新的嵌套数组。例如,取[[a,b,c,d],[e,f,g,h],[i,j,k,l]]并将其更改为[[a,e,i],[b ,f,j],[c,g,k],[d,h,l]]

let rowArr = [[a,b,c,d], [e,f,g,h], [i,j,k,l]];
let newRowArr = [];
    let length = rowArr.length;
    for(let i = 0; i<length; i++){
        for(let j = 0; j<rowArr.length; j++){
            newRowArr.push(rowArr[i][j]);
            j+=rowArr.length;
            }
console.log(newRowArr) //I get only [a,e,i]

我遗漏了一些显而易见的东西,但为什么它不循环额外的时间将其他字母推入数组?

javascript arrays multidimensional-array
2个回答
0
投票

您可以使用嵌套循环,其中ij是内部索引名称中外部的名称,然后使用它们作为result[j][i] = current inner loop value添加到新数组中>

let arr = [
  ['a', 'b', 'c', 'd'],
  ['e', 'f', 'g', 'h'],
  ['i', 'j', 'k', 'l']
];

const result = []

arr.forEach((a, i) => {
  a.forEach((e, j) => {
    if (!result[j]) result[j] = []
    result[j][i] = e
  })
})

console.log(result)

0
投票

您可以使用Array.prototype.map

© www.soinside.com 2019 - 2024. All rights reserved.