azukiazusa

azukiazusa

配列をグループ化する Object.groupBy 静的メソッド

Object.groupBy 静的メソッドは、ES2024 で追加された配列をグループ化する関数です。配列の各要素に対してグループ化のキーを指定することで、グループ化されたオブジェクトを返します。

azukiazusa

azukiazusa

以下のコードは、type プロパティをグループ化のキーとして、items 配列をグループ化しています。

const items = [
  { type: "fruit", name: "apple" },
  { type: "fruit", name: "orange" },
  { type: "vegetable", name: "carrot" },
  { type: "fruit", name: "banana" },
  { type: "vegetable", name: "tomato" },
]
 
const groupedItems = Object.groupBy(items, (item) => item.type)
azukiazusa

azukiazusa

console.log(groupedItems)
// {
//   fruit: [
//     { type: "fruit", name: "apple" },
//     { type: "fruit", name: "orange" },
//     { type: "fruit", name: "banana" },
//   ],
//   vegetable: [
//     { type: "vegetable", name: "carrot" },
//     { type: "vegetable", name: "tomato" },
//   ],
// }
azukiazusa

azukiazusa

ちなみに、当初は Array.prototype.groupBy として提案されていましたが、ライブラリの互換性の問題が次々と発見されたため、最終的に Object の静的メソッドとして提案されたという経緯があります。