通过在对象中保留一个来删除重复记录

时间:2017-11-24 10:16:42

标签: javascript

我删除了重复功能,这将删除重复记录。但我想要至少一份。

前:

var myArr = [{"Country":"China","Rank":"2"},{"Country":"USA","Rank":"2"},{"Country":"China","Rank":"2"}];

O/P = [{"Country":"China","Rank":"2"},{"Country":"USA","Rank":"2"}] 

我将根据"国家"

删除

我的代码

removeDuplicates : function(myArr, Country) {
        var finalArray = [];
        var values = [];
        var value;
        for (var i = 0; i < myArr.length; i++) {
            value = myArr[i][Country];

            if (values.indexOf(value) === -1) {
                finalArray.push(myArr[i]);
                values.push(value);
            }
        }
        return finalArray;
    },

如何维护原始记录并仅删除重复记录。

2 个答案:

答案 0 :(得分:0)

尝试这样的事情

var result=[];
myArr.map(function(x){
          if(myArr.filter(y=>y.Country==x.Country).length==1 || (result.filter(r=>r.Country==x.Country).length==0))
          result.push(x);
})
console.log(result);

答案 1 :(得分:0)

我会使用reduce&amp;在这里找到。

"dataProvider": pie,