检查重复项的功能无法正常工作

Function that Checks for Duplicates not Working Properly

我有这个迷你应用程序,允许用户输入汽车的品牌和型号,然后将其添加到下面的 table。我添加了一个功能,该功能将检查重复项并提醒 table 中是否已经存在任何重复项。如果没有匹配的现有记录,它将把新的 "make" 和 "model" 推送到 table。我更改了代码以使用 _.isEqual 而不是我之前使用的代码,现在每次我 运行 它都会在警报中被捕获。有人知道发生了什么事吗?

 <div>Make: <input type="text" ng-model="make"></div>
 <div>Model:<input type="text" ng-model="model"></div>
 <button ng-click="add()">Add</button>

    <tr>
        <th>Make</th>
        <th>Model</th>
    </tr>
    <tr ng-repeat="car in cars" ng-click="rowClick(car)">
        <td>{{car.make}}</td>
        <td>{{car.model}}</td>
    </tr>

 var carsApp = angular.module('carsApp', []);

carsApp.controller('carController', function ($scope){

   $scope.cars = [];

  $scope.add = function () {

      var newCar = {
        make: $scope.make,
        model: $scope.model
      };

      function hasDuplicates(){
        angular.forEach($scope.cars, function(car, key){
          _.isEqual(car, newCar);
        });
      }

      if (hasDuplicates) {
          alert("Car already exists");
          } else {  
           $scope.cars.push(newCar);
          }
      }      

      $scope.rowClick = function(car){
          $scope.make= car.make;
          $scope.model= car.model;
      };

        $scope.make = null;
        $scope.model = null;

  });

最终选择了一个更简单的选项并改为使用 angular.equals。 isEqual 很难正确实施。感谢大家的帮助!

function hasDuplicates(newCar){
     var returnVal = false;
     angular.forEach($scope.cars, function(car, key){
        if (angular.equals(car, newCar))
        {
          returnVal = true;
        }
      });
     return returnVal;
  };