【Node.js24.x】Object::groupBy()メソッドの使い方
groupByメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
groupByメソッドは、指定されたコレクション(イテラブルなオブジェクト、例えば配列)の要素を、特定の基準に基づいてグループ分けし、新しいプレーンなオブジェクトとして返すメソッドです。
このメソッドは、第一引数にグループ化したいコレクションを受け取り、第二引数にグループのキーを生成するためのコールバック関数を受け取ります。コールバック関数は、コレクションの各要素に対して一度ずつ実行され、その戻り値がグループを識別するためのキーとして使用されます。
メソッドの実行結果として返されるオブジェクトは、コールバック関数が生成したキーをプロパティ名とし、そのキーに属する元のコレクションのすべての要素を値として持つ配列を保持します。これにより、データがキーごとに整理された構造になります。
例えば、ユーザーのリストを地域ごとに分類したり、商品のリストをカテゴリごとに整理したりするなど、特定の条件でデータを分類・集計したい場合に非常に有用です。複雑なループ処理を記述することなく、データの構造化を簡潔かつ効率的に行えるようになります。
この機能は、Node.js 24以降のバージョンで利用可能であり、データの整理や表示の準備など、さまざまなプログラミングシナリオでデータの扱いを容易にします。
構文(syntax)
const array = [
{ id: 1, type: 'fruit', name: 'apple' },
{ id: 2, type: 'fruit', name: 'banana' },
{ id: 3, type: 'vegetable', name: 'carrot' },
{ id: 4, type: 'fruit', name: 'orange' },
];
const groupedObject = Object.groupBy(array, (item) => item.type);
console.log(groupedObject);
/*
出力例:
{
fruit: [
{ id: 1, type: 'fruit', name: 'apple' },
{ id: 2, type: 'fruit', name: 'banana' },
{ id: 4, type: 'fruit', name: 'orange' }
],
vegetable: [
{ id: 3, type: 'vegetable', name: 'carrot' }
]
}
*/
引数(parameters)
items, callbackFn
- items: any[]: グループ化する対象となる配列
- callbackFn: (item: any, index: number, array: any[]) => string | number | symbol: 各要素をどのグループに属するかを決定するための関数。この関数の戻り値がグループのキーとなります。
戻り値(return)
Object
指定された条件に基づいて、Object.groupBy メソッドの戻り値の説明を生成します。
指定されたキーに基づいて、元の配列の要素がグループ化された新しいオブジェクトを返します。