Сортировка/группировка вложенного обьекта JS / TS
Сгруппировать объекты по параметру
Пример объекта:
itCameFromTheServer = [
{ id: 1, info: { a: 1, b: {c : 3} } },
{ id: 2, info: { a: 2, b: {c : 3} } },
{ id: 3, info: { a: 2, b: {c : 3} } }
]
Ожидаемый результат при сортировке по параметру info.a:
itCameFromTheServerSort = {
1: { id: 1, info: { a: 1, b: {c : 3} } },
2: [
{ id: 2, info: { a: 2, b: {c : 3} } },
{ id: 3, info: { a: 2, b: {c : 3} } }
]
}
Ожидаемый результат при сортировке по параметру info.b.c:
itCameFromTheServerSort = {
3:[
{ id: 1, info: { a: 1, b: {c : 3} } },
{ id: 2, info: { a: 2, b: {c : 3} } },
{ id: 3, info: { a: 2, b: {c : 3} } }
]
}
Получилось приблизиться к похожей сортировке, только при плоском объекте
const itCameFromTheServer = [
{ id: 1, info: 1 },
{ id: 2, info: 2 },
{ id: 2, info: 2 }
]
const newUsers = {};
users.forEach(user => {
newUsers[user.info] = user;
});
Результат:
{ '1': { id: 1, info: 1 }, '2': { id: 2, info: 2 } }
Источник: Stack Overflow на русском