对象联接的Javascript数组重复项

时间:2018-09-13 14:03:30

标签: javascript arrays object

我需要按国家/地区代码查找重复项并将其合并为一个对象

数组结构为:

[{...},{...}]

对象

{Country_Code: "RU", Country: "Russia", Provider: "Shell1", Price: "0.123"},
{Country_Code: "EN", Country: "Russia", Provider: "Shell", Price: "0.76856"},
{Country_Code: "RO", Country: "Russia", Provider: "Shell", Price: "0.563"},
{Country_Code: "RU", Country: "Russia", Provider: "Shell2", Price: "0.90890"},
{Country_Code: "RU", Country: "Russia", Provider: "Shell3", Price: "0.90"}

我需要获取对象数组

[{Country_Code: "RU", Country: "Russia", Provider: "Shell1 - 0.123</br>Shell2 - 0.90890</br>Shell3 - 0.90", Price: "0.123"},
{Country_Code: "EN", Country: "Russia", Provider: "Shell", Price: "0.76856"},
{Country_Code: "RO", Country: "Russia", Provider: "Shell", Price: "0.563"}]

如果想必一定是这样的话

var NewArr =[],NewObj ={};
data.forEach(function(dataItem,index) {
    CC = dataItem.Country_Code;
    counts[CC]= (counts[CC]||0) + 1; // Count duplicates
        if(counts[CC]>1){
            NewObj.Country_Code = dataItem.Country_Code;
            NewObj.Country = dataItem.Country;
            NewObj.Provider = dataItem.Provider + " - " + dataItem.Price + "</br>";
            NewObj.Price = dataItem.Price;
            NewArr[indexOfDup] = NewObj; //but how to know index?
        }else{
            NewArr.push(data[index]);
        }

});

但是它错了,那么如何编写正确的语法呢?

1 个答案:

答案 0 :(得分:0)

您可以在此处使用use array.indexOf(someValue)属性。