简体   繁体   English

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM