Javascript 按值名称筛选出重复的对象并放入新数组中

Javascript 按值名称筛选出重复的对象并放入新数组中,javascript,arrays,Javascript,Arrays,我试图通过对象值名称过滤掉数组中的重复对象,并将其放入名为finalResult的新数组中 基本上,我只希望在我的新数组中有具有唯一国家名称的对象 示例阵列: var result = [ {country: 'united states', numofdistributors: 5}, {country: 'united states', numofdistributors: 5}, {country: 'brazil', numofdistributors: 2},

我试图通过对象值名称过滤掉数组中的重复对象,并将其放入名为finalResult的新数组中

基本上,我只希望在我的新数组中有具有唯一国家名称的对象

示例阵列:

var result = [
   {country: 'united states', numofdistributors: 5},
   {country: 'united states', numofdistributors: 5},
   {country: 'brazil', numofdistributors: 2},
   {country: 'Germany', numofdistributors: 1},
   {country: 'india', numofdistributors: 6},
   {country: 'united states', numofdistributors: 5},
   {country: 'Egypt', numofdistributors: 1},
   {country: 'Germany', numofdistributors: 1},
];
这就是我希望阵列的结果:

var finalResult = [
   {country: 'united states', numofdistributors: 5},
   {country: 'brazil', numofdistributors: 2},
   {country: 'Germany', numofdistributors: 1},
   {country: 'india', numofdistributors: 6},
   {country: 'Egypt', numofdistributors: 1},
];
以下是我试图解决的问题,没有运气,只有挫折:

var finalResults = [];
result.forEach(function(country){
    if(finalResults.indexOf(country.country) != -1){
        console.log('already added');
    }else {
       //console.log('Does not exist');
       finalResults.push(country);
});
console.log(finalResults);

您可以使用对象过滤数据,并对已插入的项使用对象

var result=[{国家:'美国',numofdistributors:5},{国家:'美国',numofdistributors:5},{国家:'巴西',numofdistributors:2},{国家:'德国',numofdistributors:1},{国家:'印度',numofdistributors:6},{国家:'美国',numofdistributors:5},{国家:'埃及',努莫夫分销商:1},{国家:'德国',努莫夫分销商:1},],
finalResult=result.filter(函数(a){
var key=a.country+'|'+a.numo;
如果(!此[键]){
此[键]=真;
返回true;
}
},Object.create(null));

document.write(''+JSON.stringify(finalResult,0,4)+'');
您已经完成了。只是一个简单的错误:

var结果=[
{国家:'美国',努比亚:5},
{国家:'美国',努比亚:5},
{国家:'巴西',努比亚:2},
{国家:'德国',努马:1},
{国家:'印度',努比亚:6},
{国家:'美国',努比亚:5},
{国家:'埃及',努马:1},
{国家:'德国',努马:1},
];
var最终结果=[
{国家:'美国',努比亚:5},
{国家:'巴西',努比亚:2},
{国家:'德国',努马:1},
{国家:'印度',努比亚:6},
{国家:'埃及',努马:1},
];
var finalResults=[];
var国家=[];
结果。forEach(职能部门(国家/地区){
if(countries.indexOf(country.country)!=-1){
console.log('已添加');
}否则{
//console.log('不存在');
最终结果推送(国家);
国家。推动(国家。国家);
}
}
);

console.log(最终结果)
Wow,提供一个空对象作为共享存储的好主意。@Nina Scholz,非常感谢!省去了我很多麻烦:)我对你的代码做了一些更改并更新了我的答案。Wow,可能应该考虑离开我的计算机一点。谢谢你指出这一点。@TravisMichaelHeller,是的。有时我们需要休息一下,重新开始头脑发热