Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

รวมสองอ็อบเจ็กต์ใน JavaScript โดยไม่สนใจค่าที่ไม่ได้กำหนด


สมมติว่าเรามีวัตถุสองอย่าง พูด A และ B แบบนี้ –

const A = { activity: 'purchased', count: undefined, time: '09:05:33' };
const B = { activity: 'purchased', count: '51', time: undefined };

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ผสานสองอ็อบเจ็กต์นี้เข้าด้วยกัน โปรดจำไว้ว่าหากคีย์ใดๆ มีค่าความจริง ก็ไม่ควรเขียนทับโดยคีย์ที่มีค่าเท็จ

หากเราทำสิ่งนี้ง่ายๆ โดยใช้ตัวดำเนินการการแพร่กระจาย มันจะไม่ติดตามค่าความจริงหรือค่าเท็จ

ดังนั้นเราจึงต้องทำสิ่งนี้โดยใช้วิธีการวนซ้ำ

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const A = { activity: 'purchased', count: undefined, time: '09:05:33' };
const B = { activity: 'purchased', count: '51', time: undefined };
const mergeObject = (A, B) => {
   let res = {};
   Object.keys({...A,...B}).map(key => {
      res[key] = B[key] || A[key];
   });
   return res;
};
console.log(mergeObject(A, B));

ผลลัพธ์

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้บนคอนโซล -

{ activity: 'purchased', count: '51', time: '09:05:33' }