Javascript 比较对象并找到匹配的值

Javascript 比较对象并找到匹配的值,javascript,lodash,Javascript,Lodash,基本上,如果特定属性的值匹配,我想比较一些对象并重新分组。 如下面的代码所示,如果类型相同,我希望将其重新组合为一个对象数组 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或下划线。 谁有好主意?

基本上,如果特定属性的值匹配,我想比较一些对象并重新分组。 如下面的代码所示,如果类型相同,我希望将其重新组合为一个对象数组

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或下划线。
谁有好主意?谢谢。

你想要这样的吗

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;
}, {});