Object.groupBy 静的メソッドは、ES2024 で追加された配列をグループ化する関数です。配列の各要素に対してグループ化のキーを指定することで、グループ化されたオブジェクトを返します。
以下のコードは、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)
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" },
// ],
// }
ちなみに、当初は Array.prototype.groupBy
として提案されていましたが、ライブラリの互換性の問題が次々と発見されたため、最終的に Object
の静的メソッドとして提案されたという経緯があります。