如何通过添加数字从对象数组中获取唯一值
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);
我在 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);