Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

รวมสองอาร์เรย์ตาม property id ใน JavaScript


สมมติว่าเรามีอาร์เรย์ออบเจกต์สองอาร์เรย์ อาร์เรย์แรกมีออบเจกต์ที่ประกอบด้วย user id และ user name

อาร์เรย์ที่สองมีออบเจกต์ที่ประกอบด้วย user id และ user address

อาร์เรย์คือ

const arr1 = [ 
  {"id":"123","name":"name 1"}, 
  {"id":"456","name":"name 2"} 
]; 
const arr2 = [ 
  {"id":"123","address":"address 1"}, 
  {"id":"456","address":"address 2"} 
];

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ทั้งสองและรวมกันเป็นอาร์เรย์ที่สาม

อาร์เรย์ที่สามควรประกอบด้วย user id, name และ address ของผู้ใช้ที่สอดคล้องกัน

ตัวอย่างโค้ด

โค้ดสำหรับการทำงานนี้จะเป็นดังนี้

const arr1 = [ 
  {"id":"123","name":"name 1"}, 
  {"id":"456","name":"name 2"} 
]; 
const arr2 = [ 
  {"id":"123","address":"address 1"}, 
  {"id":"456","address":"address 2"} 
]; 
const mergeArrays = (arr1 = [], arr2 = []) => { 
  let res = []; 
  res = arr1.map(obj => { 
    const index = arr2.findIndex(el => el["id"] == obj["id"]); 
    const { address } = index !== -1 ? arr2[index] : {}; 
    return { 
      ...obj, 
      address 
    }; 
  }); 
  return res; 
}; 
console.log(mergeArrays(arr1, arr2));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็นดังนี้

[ 
  { id: '123', name: 'name 1', address: 'address 1' }, 
  { id: '456', name: 'name 2', address: 'address 2' } 
]