JavaScript/Object/groupBy

カテゴリ:Book:JavaScript#Object/groupBy%20

Object.groupBy() は、指定されたイテラブル(例: 配列)の要素を、コールバック関数が返すキーに基づいてグループ化するメソッドです。このメソッドは、各グループのキーとそれに対応する要素の配列を含むオブジェクトを返します[1]

構文

Object.groupBy(items, callback)
  • items: グループ化する対象のイテラブル(例: 配列)。
  • callback: 各要素に対して呼び出されるコールバック関数。この関数は、要素をグループ化するためのキーを返します。

配列の要素をグループ化するプログラム

以下のプログラムは、Object.groupBy() を使用して配列の要素をグループ化します。

const items = [
  { name: 'apple', type: 'fruit' },
  { name: 'carrot', type: 'vegetable' },
  { name: 'banana', type: 'fruit' },
  { name: 'broccoli', type: 'vegetable' }
];

const grouped = Object.groupBy(items, item => item.type);

console.log(grouped);
// 出力:
// {
//   fruit: [
//     { name: 'apple', type: 'fruit' },
//     { name: 'banana', type: 'fruit' }
//   ],
//   vegetable: [
//     { name: 'carrot', type: 'vegetable' },
//     { name: 'broccoli', type: 'vegetable' }
//   ]
// }

このプログラムでは、Object.groupBy() を使用して items 配列の要素を type プロパティに基づいてグループ化しています。

数値の配列を偶数と奇数にグループ化するプログラム

以下のプログラムは、Object.groupBy() を使用して数値の配列を偶数と奇数にグループ化します。

const numbers = [1, 2, 3, 4, 5, 6];

const grouped = Object.groupBy(numbers, num => num % 2 === 0 ? 'even' : 'odd');

console.log(grouped);
// 出力:
// {
//   odd: [1, 3, 5],
//   even: [2, 4, 6]
// }

このプログラムでは、Object.groupBy() を使用して numbers 配列の要素を偶数と奇数にグループ化しています。

注意点

  • コールバック関数: コールバック関数は、各要素に対して呼び出され、グループ化のためのキーを返します。
  • 戻り値: Object.groupBy() は、各グループのキーとそれに対応する要素の配列を含むオブジェクトを返します。
  • イテラブル: items は、配列やその他のイテラブル(例: Set, Map など)を指定できます。

脚註

  1. これは、イテラブルの要素をグループ化するために使用されます。

外部リンク

カテゴリ:Book:JavaScript#Object/groupBy%20 カテゴリ:JavaScript
カテゴリ:Book:JavaScript カテゴリ:JavaScript カテゴリ:Pages using the JsonConfig extension