javascript - forEach를 사용한 concat 배열




arrays (3)

20 개의 객체 배열로 구성된 두 개의 배열이 있습니다. 이처럼 :

var array1 = [
  [
    {'x':0,'y':0},
    {'x':0,'y':0}
  ],
  [
    {'x':1,'y':1},
    {'x':1,'y':1}
  ],
...
  [
    {'x':19,'y':19},
    {'x':19,'y':19}
  ]
];

var array2 = [
  [
    {'x':0,'y':0},
    {'x':0,'y':0}
  ],
  [
    {'x':1,'y':1},
    {'x':1,'y':1}
  ],
...
  [
    {'x':19,'y':19},
    {'x':19,'y':19}
  ]
];

최종 결과를 원합니다.

[
    [
    {'x':0,'y':0},
    {'x':0,'y':0},
    {'x':0,'y':0},
    {'x':0,'y':0}
    ],
...
];

따라서 각 배열에 두 개의 항목을 첨부합니다. 즉, 각 배열에는 이제 네 개의 객체가 포함되어야합니다.

내가 시도한 것은 :

      var array3 = array1;

      array3.forEach(function(item,i) {
         item.concat(array2[i])
      })

그러나 아무것도 추가되지 않았습니다

질문

항목을 반복적으로 연결하는 데 어려움이 덜한 방법이 있습니까?


이것은 상당히 일반적인 "zip"작업이며 map 사용하여 수행 할 수 있습니다.

var array1 = [
  [
    {'x':0,'y':0},
    {'x':0,'y':0}
  ],
  [
    {'x':1,'y':1},
    {'x':1,'y':1}
  ],
  [
    {'x':19,'y':19},
    {'x':19,'y':19}
  ]
];

var array2 = [
  [
    {'x':0,'y':0},
    {'x':0,'y':0}
  ],
  [
    {'x':1,'y':1},
    {'x':1,'y':1}
  ],
  [
    {'x':19,'y':19},
    {'x':19,'y':19}
  ]
];

var result = array1.map( (item,i) => item.concat(array2[i]));
console.log(result);


이것은 어떤가요?

var array3 = array1.map((a, idx) => [...a, ...array2[idx]] )

var array3 = array1 을 할당하고 array3 을 변경하면 둘 다 동일한 배열을 참조하므로 array1 도 변경됩니다.

첫 번째 배열을 map 하고 인덱스를 기반으로 array2 배열을 기반으로 각 내부 배열을 연결할 수 map

const array3 = array1.map((o, i) => o.concat(array2[i]))

또는 ES5에서 :

var array3 = array1.map(function(o, i) {
  return o.concat(array2[i])
})

const array1=[[{x:0,y:0},{x:0,y:0}],[{x:1,y:1},{x:1,y:1}],[{x:19,y:19},{x:19,y:19}]],
    array2=[[{x:0,y:0},{x:0,y:0}],[{x:1,y:1},{x:1,y:1}],[{x:19,y:19},{x:19,y:19}]];

const array3 = array1.map((o, i) => o.concat(array2[i]))

console.log(array3)





arrays