2014-10-03 2 views
0

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

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

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

{ 
    "name": "bb", 

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

{ 
    "name": "cc", 

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

Я хочу, чтобы сгруппировать этот Сектор ид. Если я группировал «набор», я просто делаю:

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 
     } 
    }] 
} 
Смежные вопросы