Postingan lainnya
Kelas Premium!
Belajar Javascript untuk website
Gunakan kupon "mulaijs" untuk diskon 75 ribu!
find dan sum dua field objects in javascript reduce
Halo dan terima kasih telah memeriksa pertanyaan saya.
Saya memiliki objek array yang berisi banyak entri untuk orang yang sama sesuai dengan tanggal yang berbeda. Saya perlu menjumlahkan dua variabel nilai untuk setiap orang.
const data = [
{
name: "Bob",
date: 3/27/22
value: 300
valueTwo: 100
},
{
name: "Alice",
date: 1/13/22
value: 500
valueTwo: 100
},
{
name: "Bob",
date: 5/13/22
value: 400
valueTwo: 100
},
{
name: "Alice",
date: 4/19/22
value: 350
valueTwo: 100
},
{
name: "John",
date: 2/15/22
value: 700
valueTwo: 100
},
]
saya butuh kan hasil seperti ini
const result = [
{
name: "Bob",
value: 700
valueTwo: 200
},
{
name: "Alice",
value: 850
valueTwo: 200
},
{
name: "John",
value: 700
valueTwo: 100
},
]
1 Jawaban:
<pre>const result = data.reduce((acc, current) => { const existing = acc.find(item => item.name === current.name); if (existing) { existing.value += current.value; existing.valueTwo += current.valueTwo; } else { acc.push({ name: current.name, value: current.value, valueTwo: current.valueTwo }); } return acc; }, []);</pre><div><br>Di sini, kita menggunakan <strong>reduce()</strong> untuk mengubah array <strong>data</strong> menjadi objek <strong>result</strong>. Pada setiap iterasi, kita mencari apakah objek dengan nama yang sama sudah ada di dalam objek <strong>result</strong>. Jika ada, kita menambahkan nilai <strong>value</strong> dan <strong>valueTwo</strong> untuk objek yang sudah ada. Jika tidak ada, kita menambahkan objek baru ke dalam array <strong>result</strong>.<br><br></div><div>Setelah semua iterasi selesai, hasil akhirnya adalah array <strong>result</strong> yang berisi objek-objek dengan nama unik dan nilai <strong>value</strong> dan <strong>valueTwo</strong> yang telah dijumlahkan.<br><br>ku tak tau sesuai dengan pertanyaan ato tidak, tapi, semoga membantu ^^</div>