比较对象并找到匹配的值

时间:2017-03-21 05:08:41

标签: 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或下划线如果可能的话。 谁有好主意?感谢。

1 个答案:

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