У меня есть объекты
let obj1 = { categoryId:1, category:"Fruits", name:"Orange"}
let obj2 = { categoryId:1, category:"Fruits",name:"Apple"}
let obj3 = { categoryId:2, category:"Vegetables", name:"Onion"}
let obj4 = { categoryId:2, category:"Vegetables", name:"Ginger"}....etc
Я хочу создать карту из этого массива, ожидаемого:
{
"Fruits": [{
"categoryId": 1,
"category": "Fruits",
"name": "Orange"
}, {
"categoryId": 1,
"category": "Fruits",
"name": "Apple"
}],
"Vegetables": [{
"categoryId": 2,
"category": "Vegetables",
"name": "Onion"
}, {
"categoryId": 2,
"category": "Vegetables",
"name": "Ginger"
}]
}
Я ищу функцию для добавления на карту одну за другой
addtoMap( obj1);
addtoMap( obj2);
addtoMap( obj3);
addtoMap( obj4);....etc
Также удалить с карты
removeFromMap( obj1);
Я пытался
addtoMap(xs, key) {
return xs.reduce(function(rv, x) {
(rv[x[key]] = rv[x[key]] || []).push(x);
return rv;
}, {});
};