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