如何通过添加数字从对象数组中获取唯一值

how to get unique values from array of objects with addition of numbers

我在 wso2 carbon 仪表板工作。我的 table 包含 2 个字段(姓名和号码)。我在对象中有重复的名称但编号不同。我想要带有数字的唯一名称。

[
        {
        "Name":"Abc",
        "number":2
        },
        {
        "Name":"bcd",
        "number":3
        },
        {
        "Name":"Abc",
        "number":5
        }

]

预期输出

[
{
"name":"Abc",
"Number":7
},
{
"name":"bcd",
"Number":3
}
]

我正在使用 java 脚本来完成这样的任务。请帮助我

对参考对象使用 Array#reduce 方法。

var data = [{
  "Name": "Abc",
  "number": 2
}, {
  "Name": "bcd",
  "number": 3
}, {
  "Name": "Abc",
  "number": 5
}];

// object for index reference
var ref = {};

// iterate and generate the array
var res = data.reduce(function(arr, o) {
  // check index already defined
  if (!(o.Name in ref)) {
    // if not defined then define index
    ref[o.Name] = arr.length;
    // and push the element
    // you can also use 
    // arr.push({Name:o.Name, number:o.number});
    arr.push(Object.assign({}, o));
  } else {
    // if index already defined update the number
    arr[ref[o.Name]].number += o.number;
  }
  // return the array reference
  return arr;
  // set initial value as empty array
}, []);

console.log(res);