首頁 > web前端 > js教程 > 如何在 JavaScript 中以物件屬性對陣列項目進行分組?

如何在 JavaScript 中以物件屬性對陣列項目進行分組?

DDD
發布: 2024-12-31 01:53:12
原創
820 人瀏覽過

How to Group Array Items by Object Properties in JavaScript?

按物件屬性對陣列項目進行分組

在您的場景中,您希望將包含具有公共群組屬性的物件的數組合併到一個新數組中。每個組都應該有一個唯一的顏色數組。

要使用 JavaScript 實現此目的:

  1. 建立群組名稱到值的映射:
    建立一個空對象,group_to_values。然後,使用 reduce 方法遍歷輸入陣列 myArray。
  • 對於 myArray 中的每個對象,檢查 group 屬性。
  • 將 group 屬性儲存為group_to_values 中的鍵。
  • 如果沒有,則在該鍵處建立一個陣列
  • 將物件的顏色屬性壓入對應群組鍵處的陣列中。
var group_to_values = myArray.reduce(function (obj, item) {
    obj[item.group] = obj[item.group] || [];
    obj[item.group].push(item.color);
    return obj;
}, {});
登入後複製
  1. 轉換為所需格式:
    將 group_to_values 物件轉換為所需的陣列格式。使用 Object.keys() 取得群組名稱並將其轉換為物件。
var groups = Object.keys(group_to_values).map(function (key) {
    return {group: key, color: group_to_values[key]};
});
登入後複製

結果 groups 將是一個物件數組,每個物件代表一個群組,帶有一個顏色數組包含該組的所有獨特顏色。

以上是如何在 JavaScript 中以物件屬性對陣列項目進行分組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板