Computer >> Máy Tính >  >> Lập trình >> Javascript

Thao tác với các đối tượng trong mảng đối tượng trong JavaScript

Giả sử, chúng ta có hai mảng đối tượng như thế này -

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'}
];

Chúng tôi được yêu cầu viết một hàm JavaScript có hai đối tượng như vậy. Hàm của chúng ta sẽ tìm kiếm các đối tượng có cùng thuộc tính "id" trong mảng đầu tiên trong mảng thứ hai.

Khi đó, hàm của chúng ta sẽ thay thế thuộc tính "name" của các đối tượng đó bằng thuộc tính "name" tương ứng của các đối tượng của mảng thứ hai.

Do đó, đối với các mảng ở trên, kết quả đầu ra sẽ giống như -

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

Ví dụ

Mã cho điều này sẽ là -

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);

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

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