JavaScript中如何将多个单列二维数组合并为多列二维数组
列数组合并为二维行数组解决方案
首先修正你提供的示例代码中的重复声明语法错误,修正后的三个列数组如下:
// 第1列数组 let firstArray = [ [100], // 第1行第1列 [200], // 第2行第1列 [300] // 第3行第1列 ] // 第2列数组 let secondArray = [ ['a'], // 第1行第2列 ['b'], // 第2行第2列 ['c'] // 第3行第2列 ] // 第3列数组 let thirdArray = [ ['run'], // 第1行第3列 ['hide'], // 第2行第3列 ['seek'] // 第3行第3列 ]
合并实现方案
方法1:基础遍历实现(兼容性最好)
因为表格场景下所有列的行数默认一致,直接遍历行索引拼接对应位置的元素即可:
let mergedArray = [] for(let i = 0; i < firstArray.length; i++) { mergedArray.push([ firstArray[i][0], secondArray[i][0], thirdArray[i][0] ]) }
方法2:map简化实现(写法更简洁)
用数组map方法直接映射生成新的行数组:
let mergedArray = firstArray.map((item, index) => { return [item[0], secondArray[index][0], thirdArray[index][0]] })
输出结果
注意:你给出的预期结果中第3行第2列存在笔误,把
'c'错写为了'b',修正后的正确输出如下:
console.log(mergedArray) // 输出: // [ // [100, 'a', 'run'], // [200, 'b', 'hide'], // [300, 'c', 'seek'] // ]
补充提示
如果实际场景中列数组长度可能不一致,可以先通过Math.max(firstArray.length, secondArray.length, thirdArray.length)获取最大行数再遍历,避免索引越界报错。
内容的提问来源于stack exchange,提问作者plaridel1
相关产品推荐
相关产品推荐

