Kira bilangan interaksi untuk setiap operasi pengurangan
P粉191323236
2023-08-14 17:21:30
<p>Saya mempunyai senarai objek seperti berikut: </p>
<pre class="brush:php;toolbar:false;">const usageCosts = {
224910186407: {
ID peranti: "224910186407",
mata wang: "GBP",
tahunanPenggunaan: 1480.81
},
224910464538: {
ID peranti: "224910464538",
mata wang: "GBP",
tahunanPenggunaan: 617.36
},
224910464577: {
ID peranti: "224910464577",
mata wang: "EUR",
tahunanPenggunaan: 522.3
}
}</pre>
<p>Saya membuat jumlah mengikut mata wang, seperti ini: </p>
<pre class="brush:php;toolbar:false;">const totalYearlyCost = Object.values(usageCosts).reduce(
(acc: { [key: string]: any }, stat: any) =>
if (stat.currency && !acc[stat.currency]) {
acc[stat.currency] = 0
}
kembali {
... acc,
[stat.currency!]: acc[stat.currency!] + stat.yearlyPenggunaan,
}
},
{},
)</pra>
<p>Ia mengembalikan objek seperti berikut: </p>
<pre class="brush:php;toolbar:false;">{
EUR: 522.3
GBP: 2,098.17
}</pre>
<p>Saya juga ingin mengembalikan jumlah bilangan peranti bagi setiap mata wang, seperti: </p>
<pre class="brush:php;toolbar:false;">{
EUR: 522.3 (1 peranti)
GBP: 2,098.17 (2 peranti)
}</pre>
<p>Cuba menambah gelung lain, tetapi hasilnya tidak seperti yang dijangkakan. </p>
Tugas ini akan menjadi lebih mudah jika dibahagikan kepada dua bahagian.
Mula-mula, tukarkannya
reduce
kepada tatasusunan yang mengandungi nilai terkumpul.Kemudian gelungkan (anda juga boleh menggunakan reduce) objek dan dapatkan jumlah tatasusunan dan tambah
${array.length} devices
pada rentetan: