สมมติว่าเรามีอ็อบเจ็กต์สองอาร์เรย์แบบนี้ -
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' } ]