Групповой массив объектов по субсайту

У меня есть объект, который содержит массив объектов, загруженных из следующего JSON:

"accounts": [
{
 "name": "aa",

 "branch": {
 "id": 1
 }
}

{
 "name": "bb",

 "branch": {
 "id": 1
 }
}

{
 "name": "cc",

 "branch": {
 "id": 2
 }
}
]

Я хочу сгруппировать их по идентификатору ветки. Если я группировал "set", я просто делаю:

groupMap= _.groupBy(object, 'set');

И первый и последний объект группируются вместе. Но как я могу группироваться по свойству собственности?

1 ответ

Вы можете передать функцию, чтобы вернуть значение, на основе которого будет выполнена группировка, например

console.log(_.groupBy(obj.accounts, function(currentObject) {
 return currentObject.branch.id;
}));

Вывод

{
 '1': [{
 name: 'aa',
 branch: {
 id: 1
 }
 }, {
 name: 'bb',
 branch: {
 id: 1
 }
 }],
 '2': [{
 name: 'cc',
 branch: {
 id: 2
 }
 }]
}

licensed under cc by-sa 3.0 with attribution.