[英]how to get unique values from array of objects with addition of numbers
I'm working in wso2 carbon dashboard. 我在wso2碳仪表板上工作。 My table is containing 2 fields (Name and Number).
我的表包含2个字段(名称和编号)。 I Have duplicate name in the objects but with different number.
我在对象中有重复的名称,但编号不同。 I want unique name with addition of numbers.
我想要添加数字的唯一名称。
[
{
"Name":"Abc",
"number":2
},
{
"Name":"bcd",
"number":3
},
{
"Name":"Abc",
"number":5
}
] ]
expected output 预期产出
[
{
"name":"Abc",
"Number":7
},
{
"name":"bcd",
"Number":3
}
]
I'm using java script to achieve such task. 我正在使用java脚本来完成这样的任务。 please help me
请帮我
Use Array#reduce
method with a reference object. 将
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.