You need to enable JavaScript to run this app. 如何使用JavaScript遍历二维数组并转换为指定格式
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript遍历二维数组并转换为指定格式

实现思路

你要的效果本质是二维数组的转置操作,也就是把原数组的行和列互换:原数组的第n列所有元素,组成新数组的第n行。

实现代码

基础遍历写法(兼容性最好,逻辑易懂)

const originalArr = [[2,3,0],[0,4,5]];
const transposedArr = [];

// 遍历原数组的所有列
for (let col = 0; col < originalArr[0].length; col++) {
  const newRow = [];
  // 遍历原数组的所有行,取出当前列的元素
  for (let row = 0; row < originalArr.length; row++) {
    newRow.push(originalArr[row][col]);
  }
  transposedArr.push(newRow);
}

console.log(transposedArr); // 输出 [[2,0],[3,4],[0,5]]

数组方法简写写法(代码更简洁)

const originalArr = [[2,3,0],[0,4,5]];
const transposedArr = originalArr[0].map((_, colIndex) => 
  originalArr.map(row => row[colIndex])
);

注意事项

  • 上述写法默认原数组的所有子数组长度一致,如果实际场景存在子数组长度不一致的情况,需要先取最长子数组的长度作为遍历上限,空位可以根据需求补undefined或者自定义默认值。
  • 如果原数组可能为空,建议加边界判断避免报错,封装后的通用函数示例:
function transposeArr(arr) {
  if (!arr.length) return [];
  return arr[0].map((_, colIndex) => arr.map(row => row[colIndex]));
}

内容的提问来源于stack exchange,提问作者Sigmond Gatt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 09:15:10