У меня есть объект со следующими свойствами:
{
title: 'Test',
places: [
{
id: 1,
longitude: 48.8469511,
latitute: 2.3077989,
address: 'Pont de Bir-Hakeim',
city: {name: 'Paris', id: 1}
},
{
id: 2,
longitude: 48.855225,
latitute: 2.288048,
address: 'Palais-Musée Galliera, 10 avenue Pierre-1er-de-Serbie',
city: {name: 'Paris', id: 1}
},
{
id: 3,
longitude: 50.8283315,
latitute: -115.2608429,
address: 'Fortress Moutain',
city: {name: 'Calgary', id: 2}
}
]
}
Вот результат, который я хочу:
[
{
id: 1,
name: 'Paris'
},
{
id: 2,
name: 'Calgary'
},
]
Как мне добиться этого с помощью groupBy
map
reduce
?Вот что я попробовал:
return from(movie.places).pipe(
groupBy(place => place.city.name),
mergeMap(place => place.pipe(map(obj => obj.city.name))),
toArray()
);
Который производит:
['Paris', 'Paris', 'Calgary']
В моей голове не очень понятно, как использовать groupBy
, map
, mergeMap
,toArray
вместе ... Спасибо за помощь!