在 Javascript 中對物件陣列使用 groupby 的最高效方法


在 js 中透過一個鍵對物件陣列進行 groupby 的最高效方法是使用 reduce 函式。

reduce() 方法對陣列中的每個元素(由您提供)執行一個 reduce 函式,結果產生一個單一的輸出值。

示例

const people = [
   { name: 'Lee', age: 21 },
   { name: 'Ajay', age: 20 },
   { name: 'Jane', age: 20 }
];
function groupBy(objectArray, property) {
   return objectArray.reduce((acc, obj) => {
      const key = obj[property];
      if (!acc[key]) {
         acc[key] = [];
      }
      // Add object to list for given key's value
      acc[key].push(obj);
      return acc;
   }, {});
}
const groupedPeople = groupBy(people, 'age');
console.log(groupedPeople);

輸出

這將產生如下輸出 −

{ 20: [ { name: 'Ajay', age: 20 }, { name: 'Jane', age: 20 } ],
21: [ { name: 'Lee', age: 21 } ] }

更新於: 2019 年 11 月 27 日

7 千次以上瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.