基本上,如果特定属性的值匹配,我想比较一些对象并重新分组。 如下面的代码,如果类型相同,我想重新组合为一个对象数组。
var obj = [{id: 94 , type: 'silver'}, {id:95,type:'gold'} , {id:96, type: 'silver'} ]
return newObj = [{id: 94 , type: 'silver'},{id:96, type: 'silver'} ]
我想使用lodash或下划线如果可能的话。 谁有好主意?感谢。
答案 0 :(得分:0)
你想要这样的东西吗? https://jsbin.com/negeqineje/edit?js,console
var metals = [
{id: 94 , type: 'silver'},
{id: 95, type:'gold'},
{id: 96, type: 'silver'},
{id: 97, type: 'platinum'},
];
var grouped = metals.reduce(function (grouped, metal) {
grouped[metal.type] = metals.filter(function (_metal) {
return (metal.type === _metal.type);
});
return grouped;
}, {});