我有两个二维数组:

var ar1 = [];
var ar1[0] = [];
var ar1[0][0] = 1;
var ar1[0][1] = 2;
var ar1[1] = [];
var ar1[1][0] = 3;
var ar1[1][1] = 4;

var ar2 = [];
var ar2[0] = [];
var ar2[0][3] = 5;
var ar2[0][4] = 6;
var ar2[1] = [];
var ar2[1][5] = 7;
var ar2[1][6] = 8;


如何获得组合数组,如下所示:

var ar1[0][0] = 1;
var ar1[0][1] = 2;
var ar1[1][0] = 3;
var ar1[1][1] = 4;
var ar1[0][3] = 5;
var ar1[0][4] = 6;
var ar1[1][5] = 7;
var ar1[1][6] = 8;


我试过了:

ar1.push(ar2);


但这会将整个ar2放入ar1的第一个空行。

最佳答案

一种可能性是forEach在第二个数组上,并且Object.assign每个子数组在第一个数组上的相应索引上:



var ar1 = [];
ar1[0] = [];
ar1[0][0] = 1;
ar1[0][1] = 2;
ar1[1] = [];
ar1[1][0] = 3;
ar1[1][1] = 4;

var ar2 = [];
ar2[0] = [];
ar2[0][3] = 5;
ar2[0][4] = 6;
ar2[1] = [];
ar2[1][5] = 7;
ar2[1][6] = 8;

ar2.forEach((subarr2, i) => {
  Object.assign(ar1[i], subarr2);
});
console.log(ar1);





请注意,仅当第一次声明新的变量名称时才使用var-分配给现有变量时,请省略它。 (此外,稀疏数组很少是一个好主意)

07-24 16:13