두 배열에서 id값이 겹치는 항목 합치기

marie·2024년 10월 7일
0

JavaScript

목록 보기
4/7
post-thumbnail

예시

 const data1 = [
   {id: 1, name: 'a'}, 
   {id: 2, name: 'b'}, 
   {id: 3, name: 'c'}, 
   {id: 4, name: 'd'}, 
   {id: 5, name: 'e'}
 ]
 
  const data2 = [
   {id: 1, age:30}, 
   {id: 4, age:3}, 
   {id: 5, age:33}
 ]

두 배열에서 id값이 동일한 객체를 합치기위해 어떻게 해야할까❓

🔹 원하는 결과

[
  { id: 1, name: 'a', age: 30 },
  { id: 2, name: 'b' },
  { id: 3, name: 'c' },
  { id: 4, name: 'd', age: 3 },
  { id: 5, name: 'e', age: 33 }
]

🔹 코드

const mergedData = data1.map(item => {
  const match = data2.find(d => d.id === item.id);
  return match ? {...item, ...match} : item;
});

id가 일치하는 객체를 찾는다
일치하는 객체가 존재한다면, 두 객체를 spread 연산자를 이용해서 합쳐준다
만약 존재하지 않는다면, 기존의 객체를 반환한다

profile
FE developer👩🏻‍💻

0개의 댓글