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

การตั้งค่าคุณสมบัติ matchingResult ตาม id ที่ตรงกันระหว่างสองอาร์เรย์ออบเจกต์ใน JavaScript

คำอธิบาย

ใช้ 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 }
]