ホームページ  >  に質問  >  本文

各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>
P粉191323236P粉191323236454日前472

全員に返信(1)返信します

  • P粉481815897

    P粉4818158972023-08-15 15:34:26

    このミッションは 2 つのパートに分けると簡単になります。

    まず、これをグループ化された値を含む配列に縮小します。

    次に、オブジェクトをループ処理し (reduce を使用することもできます)、

    配列の合計を取得します。 文字列に ${array.length} devices を追加します。

    リーリー

    返事
    0
  • キャンセル返事