Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mencantumkan Objek JavaScript dengan Kekunci Padanan dengan Cekap dan Menjumlahkan Nilainya?

Bagaimana untuk Mencantumkan Objek JavaScript dengan Kekunci Padanan dengan Cekap dan Menjumlahkan Nilainya?

Linda Hamilton
Lepaskan: 2024-12-08 05:51:09
asal
328 orang telah melayarinya

How to Efficiently Merge JavaScript Objects with Matching Keys and Sum Their Values?

Menggabungkan Objek dengan Sifat Padanan dalam Tatasusunan JavaScript

Pertimbangkan tatasusunan objek berikut:

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

Matlamat kami adalah untuk menggabungkan kunci pendua dan jumlahkan nilai masing-masing, menghasilkan:

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

Sementara percubaan awal mungkin melibatkan lelaran dan menolak nilai, pendekatan yang lebih cekap melibatkan memanfaatkan fungsi terbina dalam JavaScript:

// Use a Map to count values with the same key
const counts = objArr.reduce((prev, curr) => {
  let count = prev.get(curr.key) || 0;
  prev.set(curr.key, curr.val + count);
  return prev;
}, new Map());

// Convert the Map back to an array of objects
const reducedObjArr = [...counts].map(([key, value]) => {
  return {key, value};
});
Salin selepas log masuk

Kaedah ini mengurangkan tatasusunan kepada Peta di mana kunci mewakili nilai kunci pendua dan nilai mewakili jumlahnya . Peta kemudiannya ditukarkan kembali kepada tatasusunan objek untuk kebolehbacaan.

Atas ialah kandungan terperinci Bagaimana untuk Mencantumkan Objek JavaScript dengan Kekunci Padanan dengan Cekap dan Menjumlahkan Nilainya?. 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