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
Lepaskan: 2024-12-14 17:18:18
asal
252 orang telah melayarinya

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
];
Salin selepas log masuk

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},
];
Salin selepas log masuk

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};
});
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan