各reduce操作のインタラクション数をカウントします。
<p>次のようなオブジェクトのリストがあります。</p>
<pre class="brush:php;toolbar:false;">const useCosts = {
224910186407: {
デバイスID: "224910186407",
通貨: "GBP"、
年間使用量: 1480.81
}、
224910464538: {
デバイスID: "224910464538",
通貨: "GBP"、
年間使用量: 617.36
}、
224910464577: {
デバイスID: "224910464577",
通貨: "ユーロ"、
年間使用量: 522.3
}
}</pre>
<p>次のように通貨ごとに合計を計算します: </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[統計通貨] = 0
}
戻る {
...はい、
[stat.currency!]: acc[stat.currency!] stat.yearlyUsage,
}
}、
{}、
)</pre>
<p>次のようにオブジェクトを返します。</p>
<pre class="brush:php;toolbar:false;">{
ユーロ: 522.3
英国ポンド: 2,098.17
}</pre>
<p>次のような、通貨ごとのデバイスの合計数も返したいと考えています。
<pre class="brush:php;toolbar:false;">{
ユーロ: 522.3 (1 デバイス)
英国ポンド: 2,098.17 (デバイス 2 台)
}</pre>
<p>別のループを追加しようとしましたが、結果は期待どおりではありませんでした。 </p>