如何使用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
相关产品推荐
相关产品推荐

