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

เพิ่มค่าของคีย์ที่ตรงกันในอาร์เรย์ของวัตถุ - JavaScript


สมมติว่าเรามีอาร์เรย์ของวัตถุเช่นนี้ -

const arr = [{a: 2, b: 5, c: 6}, {a:3, b: 4, d:1},{a: 1, d: 2}];

แต่ละอ็อบเจ็กต์ถูกผูกไว้กับคีย์ที่ไม่ซ้ำกันในตัวเอง (เพื่อให้เป็นอ็อบเจ็กต์ที่ถูกต้อง) แต่อ็อบเจ็กต์ที่แตกต่างกันสองรายการสามารถมีคีย์ทั่วไปได้ (สำหรับจุดประสงค์ของคำถามนี้)

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าวและส่งคืนอ็อบเจ็กต์ที่มีคีย์ไม่ซ้ำกันทั้งหมดที่มีอยู่ในอาร์เรย์และค่าของอาร์เรย์ดังกล่าว ผลรวมสะสมเป็นค่า

ดังนั้นวัตถุผลลัพธ์ควรมีลักษณะดังนี้ −

const output = {a: 6, b: 9, c: 6, d: 3};

ตัวอย่าง

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

const arr = [{a: 2, b: 5, c: 6}, {a: 3, b: 4, d:1}, {a: 1, d: 2}];
const sumArray = arr => {
   const res = {};
   for(let i = 0; i < arr.length; i++){
      Object.keys(arr[i]).forEach(key => {
         res[key] = (res[key] || 0) + arr[i][key];
      });
   };
   return res;
};
console.log(sumArray(arr));

ผลลัพธ์

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

{ a: 6, b: 9, c: 6, d: 3 }