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
  },
]
avatar farhan1001
@farhan1001

1 Kontribusi 0 Poin

Diperbarui 1 tahun yang lalu

1 Jawaban:

<pre>const result = data.reduce((acc, current) =&gt; { const existing = acc.find(item =&gt; 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>

avatar yukari06
@yukari06

137 Kontribusi 66 Poin

Dipost 1 tahun yang lalu

Login untuk ikut Jawaban