Rumah >hujung hadapan web >tutorial js >Bagaimana Menjumlahkan Nilai Harta Objek dengan Kunci Dikongsi dalam JavaScript?

Bagaimana Menjumlahkan Nilai Harta Objek dengan Kunci Dikongsi dalam JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-14 17:18:18253semak imbas

How to Sum Object Property Values with Shared Keys in JavaScript?

Menjumlahkan Nilai Harta Objek dengan Kunci Dikongsi dalam JavaScript

Pertimbangkan susunan objek JavaScript berikut:

const objArr = [
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 42},
    {key: "Mon Sep 24 2013 00:00:00 GMT-0400", val: 78},
    {key: "Mon Sep 25 2013 00:00:00 GMT-0400", val: 23},
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 54}, // Duplicate key
];

Matlamatnya adalah untuk menggabungkan kunci pendua dengan menjumlahkan nilai val yang sepadan, menghasilkan tatasusunan seperti ini:

const reducedObjArr = [
    {key: "Mon Sep 23 2013 00:00:00 GMT-0400", val: 96},
    {key: "Mon Sep 24 2013 00:00:00 GMT-0400", val: 78},
    {key: "Mon Sep 25 2013 00:00:00 GMT-0400", val: 23},
];

Untuk mencapai matlamat ini, penyelesaian teguh yang menggunakan kaedah pengurangan dan peta boleh digunakan:

let counts = objArr.reduce((prev, curr) => {
  let count = prev.get(curr.key) || 0;
  prev.set(curr.key, curr.val + count);
  return prev;
}, new Map());

let reducedObjArr = [...counts].map(([key, value]) => {
  return {key, value};
});

Pendekatan ini mula-mula mencipta Peta menggunakan reduce, di mana setiap kekunci mewakili kunci unik daripada tatasusunan asal dan nilai yang sepadan ialah jumlah semua nilai val dengan kunci yang sama.

Akhir sekali, kaedah peta ialah digunakan pada peta kiraan untuk menukarnya semula kepada tatasusunan objek dengan nilai gabungan yang dikehendaki. Output kod ini ialah reducedObjArr, yang mengandungi nilai yang digabungkan dan dijumlahkan seperti yang diperlukan.

Atas ialah kandungan terperinci Bagaimana Menjumlahkan Nilai Harta Objek dengan Kunci Dikongsi dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn