Javascript 检查对象数组中是否存在值
鉴于这一目标: 我需要检查访客阵列中是否已经存在某个卡片id。我该怎么做?我尝试了一个循环,但没有成功,因为当我得到一个新的data.card_id,并且访问者数组中已经有多个条目时,它可能不匹配 我的代码:Javascript 检查对象数组中是否存在值,javascript,angularjs,Javascript,Angularjs,鉴于这一目标: 我需要检查访客阵列中是否已经存在某个卡片id。我该怎么做?我尝试了一个循环,但没有成功,因为当我得到一个新的data.card_id,并且访问者数组中已经有多个条目时,它可能不匹配 我的代码: $scope.$on(“addMultiVisitor”,函数(evt,数据){ $scope.newVisit.visitors.length+1; $scope.newVisit.visitors.push({ “访问路径id”:“, “卡id”:data.id, “identity_
$scope.$on(“addMultiVisitor”,函数(evt,数据){
$scope.newVisit.visitors.length+1;
$scope.newVisit.visitors.push({
“访问路径id”:“,
“卡id”:data.id,
“identity_id”:data.identity.id,
“公司id”:data.company.id,
“公司名称”:data.company.name,
“firstname”:data.identity.given_名称,
“lastname”:data.identity.姓氏,
“生日”:新日期(data.identity.birthdate)
});
scrollTo(0,document.body.scrollHeight);
$scope.$apply();
});
您可以使用数组。一些方法:
var doesIdExist = $scope.newVisit.visitors.some(function(v) {
return v.card_id === data.id;
});
如果数组中的任何内容与条件匹配,则结果将为true
,否则false
您可以使用indexOf()
检查数组中是否已经存在对象
如果对象不在数组中,它将返回-1:
$scope.o = {
"access_route_id": "",
"card_id": data.id,
"identity_id": data.identity.id,
"company_id": data.company.id,
"company_name": data.company.name,
"firstname": data.identity.given_names,
"lastname": data.identity.surname,
"birthdate": new Date(data.identity.birthdate)
}
if($scope.newVisit.visitors.indexOf(o) == -1) { // Not in the array
$scope.newVisit.visitors.push(o);
}
但是我想这更适合你的需要。但是记住关于浏览器支持,“some”是IE>=9@PawełKozikowski-是的,我希望现在每个人都在为>=IE9开发