Javascript 添加唯一键值的JSON

Javascript 添加唯一键值的JSON,javascript,jquery,html,css,json,Javascript,Jquery,Html,Css,Json,我试图在我想要的输出中为下面的小提琴添加唯一的值 { category: 'fos', value: 70 }, { category: 'nyedva', value: 30 } 我能够获得数组中的唯一值,但不确定在何处添加值 您可以使用forEach()循环返回所需的结果 var目录={“产品”:[{“类别”:“fos”,“价值”:10},{“类别”:“fos”,“价值”:20},{“类别”:“nyedva”,“价值”:30},{“类别”:“fos”,“价值”:40} va

我试图在我想要的输出中为下面的小提琴添加唯一的值

  { category: 'fos', value: 70 },
    { category: 'nyedva', value: 30 }
我能够获得数组中的唯一值,但不确定在何处添加值

您可以使用
forEach()
循环返回所需的结果

var目录={“产品”:[{“类别”:“fos”,“价值”:10},{“类别”:“fos”,“价值”:20},{“类别”:“nyedva”,“价值”:30},{“类别”:“fos”,“价值”:40}
var结果=[];
目录.产品.forEach(功能(e){
var c=e.类别;
!this[c]?(this[c]=e,result.push(this[c]):this[c].value+=e.value
}, {})

console.log(result)
您无需jQuery即可执行此操作:

var res = catalog.products.reduce(function(res, product) {
  if (!res.hasOwnProperty(product.category)) {
    res[product.category] = 0;
  }
  res[product.category] += product.value;
  return res;
}, {});

console.log(res);
这将产生:

{ fos: 70, nyedva: 30 }
如果要将其作为类别数组,请执行以下操作:

console.log(Object.keys(res).map(function(key) { return { category: key, value: res[key] }; }));
这将为您提供:

[ { category: 'fos', value: 70 },
  { category: 'nyedva', value: 30 } ]
[ { category: 'fos', value: 70 },
  { category: 'nyedva', value: 30 } ]