다음과 같은 두 개의 객체 배열이 있다고 가정합니다. -
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' } ]