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()