Zählen Sie die Anzahl der Interaktionen für jeden Reduzierungsvorgang
P粉191323236
2023-08-14 17:21:30
<p>Ich habe eine Liste von Objekten wie folgt:</p>
<pre class="brush:php;toolbar:false;">const verwendenCosts = {
224910186407: {
Geräte-ID: „224910186407“,
Währung: „GBP“,
jährliche Nutzung: 1480,81
},
224910464538: {
Geräte-ID: „224910464538“,
Währung: „GBP“,
jährliche Nutzung: 617,36
},
224910464577: {
Geräte-ID: „224910464577“,
Währung: „EUR“,
jährliche Nutzung: 522,3
}
}</pre>
<p>Ich errechne eine Summe nach Währung, etwa so: </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
}
zurückkehren {
...gemäß,
[stat.currency!]: acc[stat.currency!] + stat.yearlyUsage,
}
},
{},
)</pre>
<p>Es gibt ein Objekt wie folgt zurück: </p>
<pre class="brush:php;toolbar:false;">{
EUR: 522,3
GBP: 2.098,17
}</pre>
<p>Ich möchte auch die Gesamtzahl der Geräte pro Währung zurückgeben, etwa so: </p>
<pre class="brush:php;toolbar:false;">{
EUR: 522,3 (1 Gerät)
GBP: 2.098,17 (2 Geräte)
}</pre>
<p>Ich habe versucht, eine weitere Schleife hinzuzufügen, aber die Ergebnisse waren nicht wie erwartet. </p>
这个任务分为两个部分会更容易。
首先,将其
reduce
为一个包含分组值的数组。然后循环遍历(也可以使用reduce)对象,并获取数组的总和,并将
${array.length} devices
添加到字符串中: