Javascript 如何检查数组中是否存在对象

Javascript 如何检查数组中是否存在对象,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我试图只向数组中添加唯一的命名对象(没有重复项),为此,我必须首先检查数组中是否已经存在该对象。不幸的是,我所有的尝试都在不断地向数组中添加重复的对象。我可以逐个检查每个对象的数组,看看我要添加的对象是否已经在数组中,如果已经在数组中,我什么也不做。因此,我正在检查我的item.ORG和数组中对象的名称是否匹配。这有助于查看它是否匹配,但如果不匹配,我不想将新对象添加到数组中,因为它可能与数组中较低的对象匹配。下面是我最近的一次尝试,也不起作用 //constructor for OrgObj

我试图只向数组中添加唯一的命名对象(没有重复项),为此,我必须首先检查数组中是否已经存在该对象。不幸的是,我所有的尝试都在不断地向数组中添加重复的对象。我可以逐个检查每个对象的数组,看看我要添加的对象是否已经在数组中,如果已经在数组中,我什么也不做。因此,我正在检查我的item.ORG和数组中对象的名称是否匹配。这有助于查看它是否匹配,但如果不匹配,我不想将新对象添加到数组中,因为它可能与数组中较低的对象匹配。下面是我最近的一次尝试,也不起作用

//constructor for OrgObj that goes in ORRArr
function OrgObj(itemOrg) {
    this.name = itemOrg;
    this.count = 0;
    this.url_status_list = [];
}

var ORGArr = [];

$.each(_items, function(index, item) {
            var weFoundIt = true;

            if (ORGArr.length === 0) {
                ORGArr.push(new OrgObj(item.ORG));
            } else {
                for (var i = 0; i < ORGArr.length; i++) {
                    if (item.ORG === ORGArr[i].name) {
                        break;
                    } else {
                        weFoundIt = false; {

                        }
                    }
                    if (weFountIt === false) {
                        ORGArr.push(new OrgObj(item.ORG));
                    }
                });
//ORGRAR中的OrgObj的构造函数
功能OrgObj(项目组织){
this.name=itemOrg;
此值为0.count;
this.url_status_list=[];
}
var ORGArr=[];
$.each(_项,函数(索引,项){
var-weFoundIt=true;
if(ORGArr.length==0){
ORGArr.push(新的OrgObj(item.ORG));
}否则{
对于(变量i=0;i
在循环中,您应该将
weFoundIt
初始化为
false
,并且只有在找到它时才将其设置为
true
。还要将复选框放在循环后面,最后一个条件(
found
而不是
found
)中还有一个打字错误。下面是一个工作示例:

一个较短的替代方案是

我会用这个方法


编辑:(参见控制台中的结果)

我似乎仍然无法通过将weFoundIt更改为false使其工作。此外,当我使用F12工具时,它表示不支持映射。还有其他想法吗?我只是注意到您的缩进与括号不符。您的
if(weFoundIt==false)
实际上在循环中。您应该将其放在循环后面。此外,您在if中发现了一个拼写错误,而不是
,这是您编写的
fount
。下面是一个工作示例:
if(ORGArr.map(function(x){return x.name;}).indexOf(item.ORG) === -1) {
    ORGArr.push(new OrgObj(item.ORG))
}
//constructor for OrgObj that goes in ORRArr
function OrgObj(itemOrg) {
  this.name = itemOrg;
  this.count = 0;
  this.url_status_list = [];
}

var ORGArr = [];
var _items = [new OrgObj('A'), new OrgObj('B'), new OrgObj('C'), new OrgObj('B'), new OrgObj('B'), new OrgObj('A'), new OrgObj('D')]


var foundNamesLookup = {};
ORGArr = _items.filter(function(item) {
  if (foundNamesLookup [item.name]) {
    return false;
  }
  foundNamesLookup [item.name] = true;
  return true;
});

console.log(ORGArr);