Я пытаюсь сделать два groupBy для массива объектов ( По сути, я пытаюсь связать два groupBy)
let lodash = require('lodash');
var characters = [
{ 'name': 'barney', 'age': 42, 'pet': 'dog' },
{ 'name': 'fred', 'age': 35, 'pet': 'dog' },
{ 'name': 'barney', 'age': 42, 'pet': 'cat' },
{ 'name': 'fred', 'age': 35, 'pet': 'goldfish' }
];
var groupByAge = lodash.groupBy(characters, 'age');
//console.log(groupByAge);
var groupByAgeAndPet = lodash.map(groupByAge, function(value){
return lodash.groupBy(value, 'pet');
});
console.log(groupByAgeAndPet);
Вывод, однако, следующий:
[{собака: [[Объект]], золотая рыбка: [[Объект]]}, {собака: [[Объект]], кошка: [[Объект]]}]
Если я выполню console.log () на карте, я получу нужный результат.
Что я должен использовать вместо lodash.map()
или мне нужно применить некоторую обработку перед возвратом изmap.
repl.it ссылка на код: https://repl.it/@Kun_XinXin/OptimalUnkemptTrapezoids
Вот ожидаемый доход:
{
35: { dog: [ { name: 'barney', age: 42, pet: 'dog' } ],
cat: [ { name: 'barney', age: 42, pet: 'cat' } ] },
42:{ dog: [ { name: 'fred', age: 35, pet: 'dog' } ],
goldfish: [ { name: 'fred', age: 35, pet: 'goldfish' } ] }
}