Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 객체 배열에서 객체 조작하기

<시간/>

다음과 같은 두 개의 객체 배열이 있다고 가정합니다. -

const arr1 = [
   {id:'124',name:'qqq'},
   {id:'589',name:'www'},
   {id:'45',name:'eee'},
   {id:'567',name:'rrr'}
];
const arr2 = [
   {id:'124',name:'ttt'},
   {id:'45',name:'yyy'}
];

우리는 두 개의 그러한 객체를 취하는 JavaScript 함수를 작성해야 합니다. 우리 함수는 첫 번째 배열에서 두 번째 배열에 있는 동일한 "id" 속성을 가진 객체를 검색해야 합니다.

그런 다음 우리 함수는 해당 개체의 "이름" 속성을 두 번째 배열 개체의 해당 "이름" 속성으로 대체해야 합니다.

따라서 위 배열의 경우 출력은 다음과 같아야 합니다. -

const output = [
   {id:'124',name:'ttt'},
   {id:'589',name:'www'},
   {id:'45',name:'yyy'},
   {id:'567',name:'rrr'}
];

예시

이에 대한 코드는 -

const arr1 = [
   {id:'124',name:'qqq'},
   {id:'589',name:'www'},
   {id:'45',name:'eee'},
   {id:'567',name:'rrr'}
];
const arr2 = [
   {id:'124',name:'ttt'},
   {id:'45',name:'yyy'}
];
const replaceByOther = (arr1, arr2) => {
   for(let i = 0; i < arr1.length; i++){
      const el = arr1[i];
      const index = arr2.findIndex(elm => el['id'] === elm['id']);
      if(index === -1){
         continue;
      };
      else['name'] = arr2[index]['name'];
   };
};
replaceByOther(arr1, arr2);
console.log(arr1);

출력

콘솔의 출력은 -

[
   { id: '124', name: 'ttt' },
   { id: '589', name: 'www' },
   { id: '45', name: 'yyy' },
   { id: '567', name: 'rrr' }
]