首頁  >  文章  >  web前端  >  如何透過多個屬性有效地將數組中的物件分組並匯總它們的值?

如何透過多個屬性有效地將數組中的物件分組並匯總它們的值?

Barbara Streisand
Barbara Streisand原創
2024-11-08 15:53:02224瀏覽

How to efficiently group objects in an array by multiple properties and summarize their values?

使用數組中的多個屬性進行高效對象分組

對數組中的對象進行分組的任務可以擴展到單一屬性之外;在某些情況下,需要考慮多個屬性進行分組。在這種情況下,需要客製化的方法。

讓我們解決根據形狀和顏色對物件進行分組的問題。目標是將具有相同形狀和顏色的物件分組,同時匯總其使用值和實例值。

預期行為:

關鍵注意事項:

  • 識別形狀和顏色的獨特組合屬性。
  • 總結具有相同組合的物件的使用值和實例值。

解:

利用 Array#reduce,我們可以迭代數組,同時維護一個輔助物件來追蹤形狀-顏色組合。

對於每個物件:

  • 根據形狀和顏色屬性建構唯一的鍵。
  • 如果在輔助物件中找不到該鍵:

    • 建立一個新物件作為目前物件的副本。
    • 將其加入到助手中物件。
    • 將其包含在結果陣列中。
  • 如果鍵已在輔助物件中:

    • 遞增幫助器中現有物件的使用值和實例值物件。

此過程有效地將具有相同形狀和顏色的物件分組,同時累積其值。

程式碼片段:

輸出始終正確,符合預期結果:

透過利用此技術,您可以根據多個屬性有效地將值分組和求和,使您能夠處理數組中複雜的資料操作任務。

以上是如何透過多個屬性有效地將數組中的物件分組並匯總它們的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn