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" เหมือนกับที่อยู่ในอาร์เรย์ที่สอง

จากนั้นฟังก์ชันควรแทนที่คุณสมบัติ "name" ของออบเจ็กต์เหล่านั้นด้วยคุณสมบัติ "name" ที่สอดคล้องจากออบเจ็กต์ของอาร์เรย์ที่สอง

ดังนั้น สำหรับอาร์เรย์ข้างต้น ผลลัพธ์ควรเป็นดังนี้:

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