Newly available 主要ブラウザの最新版で対応済み。古いブラウザが対象外なら使用可能。

概要

Object.groupBy() は配列の要素をコールバック関数の戻り値をキーとしてグループ化し、プレーンオブジェクトで返します。Map.groupBy() は Map を返します。

対応ブラウザ

機能 デスクトップ モバイル
Chrome
Edge
Firefox
Safari
Chrome Android
Safari iOS
117
117
119
17.4
117
17.4
ビルトインオブジェクト

Object.groupBy() は静的メソッドで、指定されたコールバック関数によって返された文字列値に従って、指定された反復可能な要素をグループ化します。返されるオブジェクトには、グループごとに個別のプロパティがあり、グループ内の要素を含む配列が格納されます。

117
117
119
17.4
117
17.4
1+対応 (バージョン) 未対応 注釈あり サブ機能の解説は MDN Web Docs (CC BY-SA 2.5)
注釈 2件
削除済み
  • このバージョンで機能が削除されました (17.4)
対応条件
  • 以前は別名で対応していました: Array.prototype.groupToMap (16.4)
注釈 2件
削除済み
  • このバージョンで機能が削除されました (17.4)
対応条件
  • 以前は別名で対応していました: Array.prototype.groupToMap (16.4)
注釈 2件
削除済み
  • このバージョンで機能が削除されました (17.4)
対応条件
  • 以前は別名で対応していました: Array.prototype.groupToMap (16.4)
注釈 2件
削除済み
  • このバージョンで機能が削除されました (17.4)
対応条件
  • 以前は別名で対応していました: Array.prototype.groupToMap (16.4)

基本構文

JAVASCRIPT
const products = [
  { name: 'apple', type: 'fruit' },
  { name: 'carrot', type: 'vegetable' },
  { name: 'banana', type: 'fruit' },
  { name: 'spinach', type: 'vegetable' },
];

const grouped = Object.groupBy(products, p => p.type);
// {
//   'fruit': [{ name: 'apple', ... }, { name: 'banana', ... }],
//   'vegetable': [{ name: 'carrot', ... }, { name: 'spinach', ... }]
// }

ライブデモ

classification with kacategory.

product. by per and to groupsplit row..

プレビュー全画面表示

Number. range in classification

dotnumber to "combine""not-combine" to split..

プレビュー全画面表示

stockstatus. classification

stock. none in product split..

プレビュー全画面表示

実務での使いどころ

  • Array grouping の活用

    配列の要素をコールバック関数の戻り値でグルーピングする。Object.groupBy と Map.groupBy を提供。

注意点

  • 古いブラウザ(IE等)では対応していない。対象ブラウザを確認すること。

アクセシビリティ

  • JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。

Powered by web-features