检查对象数组中是否存在值

Ben*_*nto 3 javascript angularjs

鉴于此对象:http://kopy.io/H2CqY

我需要检查访问者的数组中是否已存在某些card_id.我该怎么办?我尝试了一个循环但是没有用,因为当我得到一个新的data.card_id并且访问者数组中已经有多个条目时它可能不匹配.

我的代码:

    $scope.$on("addMultiVisitor", function(evt, data) {

      $scope.newVisit.visitors.length + 1;
      $scope.newVisit.visitors.push({
        "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)
      });
      window.scrollTo(0, document.body.scrollHeight);
      $scope.$apply();
  });
Run Code Online (Sandbox Code Playgroud)

tym*_*eJV 5

您可以使用以下Array.some方法:

var doesIdExist = $scope.newVisit.visitors.some(function(v) {
    return v.card_id === data.id;
});
Run Code Online (Sandbox Code Playgroud)

如果数组中的任何内容与条件匹配,true则结果为else false.