คำอธิบาย
ใช้ reduce() สร้าง lookup object จากอาร์เรย์ที่สอง แล้ว map() เพื่อเพิ่มคุณสมบัติ matchingResult ในอาร์เรย์แรก
ตัวอย่างโค้ด
let firstDetails = [
{"studentId":101,"studentName":"John"},
{"studentId":102,"studentName":"David"},
{"studentId":103,"studentName":"Bob"}
];
let secondDetails = [
{"studentId":101,"studentName":"Robert"},
{"studentId":109,"studentName":"Mike"},
{"studentId":103,"studentName":"Adam"}
];
const obj = secondDetails.reduce((o, v) => (o[v.studentId] = true, o), {});
const output = firstDetails.map(v => ({ ...v, matchingResult: obj[v.studentId] || false }));
console.log(output);
วิธีรัน
node fileName.js
ผลลัพธ์
[
{ studentId: 101, studentName: 'John', matchingResult: true },
{ studentId: 102, studentName: 'David', matchingResult: false },
{ studentId: 103, studentName: 'Bob', matchingResult: true }
]