【问题标题】:Push from one two-dimensional array to another two-dimensional array从一个二维数组推送到另一个二维数组
【发布时间】:2022-12-07 06:35:05
【问题描述】:

我有一个这样的数组:

arr1 [
  [
    '    ', '[H] ',
    '    '
  ],
  [
    '[W] ', '[B] ',
    '    '
  ],
  [
    '[S] ', '    ',
    '[M]'
  ]
]

如何让arr1的每个元素的0个元素被压入arr2的0个元素,arr1的1个元素压入arr2的1个元素等等,就像这样

arr2 [
  [
    '    ', '[W] ',
    '[S] '
  ],
  [
    '[H] ', '[B] ',
    '    '
  ],
  [
    '    ', '    ',
    '[M]'
  ]
]

这个方法

let arr2 = []
 for (let i = 0; i< arr1.length; i++) {
   for (let j of arr1[i]) {
     arr2[i].push(j[i])
     //or arr2[i].push(j)
   }
 }

抛出错误

arr2[i].push(j[i]) //or arr2[i].push(j) the same error
       ^
TypeError: Cannot read properties of undefined (reading 'push')

【问题讨论】:

  • 您必须在访问/推送之前初始化插槽。尝试在推送操作之前添加它 if(!arr2[i]) arr2[i] = []

标签: javascript arrays


【解决方案1】:

最简单的方法是使用concat

const arr1 = [
  ['    ', '[H] ', '    '],
  ['[W] ', '[B] ', '    '],
  ['[S] ', '    ', '[M]'],
];

const arr2 = [
  ['    ', '[W] ', '[S] '],
  ['[H] ', '[B] ', '    '],
  ['    ', '    ', '[M]'],
];

for (let i = 0; i < arr2.length; i++) arr2[i] = arr2[i].concat(arr1[i]);

console.log(arr2);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-04
    • 2021-12-31
    • 2014-09-03
    • 2012-11-13
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多