Map.groupBy()

Map.groupBy(items, callbackFn(element, index))

Comme Object.groupBy(), mais le résultat est une Map – la clé d’un groupe peut donc aussi être un objet ou un nombre, et les groupes restent dans l’ordre de leur création.

Paramètres

  • items – tableau ou autre source itérable.
  • callbackFn(element, index) – fonction qui renvoie la clé du groupe (de n’importe quel type).

Valeur de retour

Une Map de tableaux d’éléments.

Exemples

const orders = [{ id: 1, amount: 12 }, { id: 2, amount: 450 }, { id: 3, amount: 89 }];
const bySize = Map.groupBy(orders, (o) => (o.amount >= 100 ? 'grandes' : 'petites'));
console.log(bySize.get('petites').map((o) => o.id), [...bySize.keys()]);
const vip = { name: 'VIP' };
const regular = { name: 'Client fidèle' };
const customers = [{ name: 'Marie', group: vip }, { name: 'Pierre', group: regular }, { name: 'Sophie', group: vip }];
console.log(Map.groupBy(customers, (c) => c.group).get(vip).map((c) => c.name));

Résultat :

[ 1, 3 ] [ 'petites', 'grandes' ]
[ 'Marie', 'Sophie' ]

Points d’attention

  • Méthode récente (2024) – les navigateurs plus anciens ne l’ont pas.

Prise en charge par les navigateurs

Baseline – largement disponible : dans tous les navigateurs courants depuis mars 2024, considéré comme largement disponible depuis septembre 2026. Depuis la version : Chrome 117, Firefox 119, Safari 17.4 ; Node.js 21.0.0. État : octobre 2026 (MDN browser-compat-data).

Voir aussi :
Object.groupBy()
Map
Array.prototype.reduce()