Вы можете использовать функцию reduce
для группировки стран следующим образом:
const countries = {list: [{name: 'India', continent: 'Asia'},{name: 'China', continent: 'Asia'},{name: 'France', continent: 'Europe'},{name: 'Germany', continent: 'Europe'}]},
countriesSorted = {list: Object.values(countries.list.reduce((a, {name, continent}) => {
(a[continent] || (a[continent] = {[continent]: []}))[continent].push(name);
return a;
}, {}))
};
console.log(countriesSorted);
Без стенограммы оценки короткого замыкания.
const countries = {list: [{name: 'India', continent: 'Asia'},{name: 'China', continent: 'Asia'},{name: 'France', continent: 'Europe'},{name: 'Germany', continent: 'Europe'}]},
countriesSorted = {
list: Object.values(countries.list.reduce((a, {name,continent}) => {
if (!a[continent]) {
a[continent] = {
[continent]: []
}
}
a[continent][continent].push(name);
return a;
}, {}))
};
console.log(countriesSorted);