Appearance
Comment utiliser groupBy RxJS ?
Le groupBy
est une opérateur RxJS qui permet de regrouper les éléments d'un observable en fonction d'une clé que vous définissez. Vous pouvez l'utiliser comme suit :
js
import { of, from, groupBy, mergeMap, toArray } from 'rxjs';
const source$ = from([
{
country: 'France',
city: 'Paris',
},
{
country: 'France',
city: 'Marseille',
},
{
country: 'Italy',
city: 'Rome',
},
]);
source$
.pipe(
groupBy(place => place.country),
mergeMap(group$ => group$.pipe(toArray()))
)
.subscribe(groupedPlaces => {
console.log(groupedPlaces);
// Output:
// [
// {
// country: 'France',
// city: 'Paris',
// },
// {
// country: 'France',
// city: 'Marseille',
// }
// ]
// [
// {
// country: 'Italy',
// city: 'Rome',
// },
// ]
});
Dans l'exemple ci-dessus, nous utilisons l'opérateur groupBy
pour regrouper les éléments de source$
en fonction de la propriété country
. Nous utilisons ensuite l'opérateur mergeMap
pour émettre les groupes d'éléments et l'opérateur toArray
pour convertir chaque groupe en un tableau.