Javascript 检查重复项是否正常工作的函数
我有一个迷你应用程序,允许用户输入汽车的品牌和型号,然后将其添加到下表中。我添加了一个函数,该函数将检查是否存在重复项,并在表中已有重复项时发出警报。如果没有匹配的现有记录,它将把新的“make”和“model”推送到表中。我将代码改为使用u.isEqual,而不是以前的代码,现在每次运行它时,它都会在警报中被捕获。有人知道发生了什么吗Javascript 检查重复项是否正常工作的函数,javascript,html,angularjs,underscore.js,Javascript,Html,Angularjs,Underscore.js,我有一个迷你应用程序,允许用户输入汽车的品牌和型号,然后将其添加到下表中。我添加了一个函数,该函数将检查是否存在重复项,并在表中已有重复项时发出警报。如果没有匹配的现有记录,它将把新的“make”和“model”推送到表中。我将代码改为使用u.isEqual,而不是以前的代码,现在每次运行它时,它都会在警报中被捕获。有人知道发生了什么吗 <div>Make: <input type="text" ng-model="make"></div> <div
<div>Make: <input type="text" ng-model="make"></div>
<div>Model:<input type="text" ng-model="model"></div>
<button ng-click="add()">Add</button>
最后使用了一个更简单的选项,并改用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;
};
因为你只是在检查“isEqual(汽车,新车);”但不要对结果做任何事。你应该做类似于isEqual=isEqual | | | |的事情并返回结果您也没有调用
hasdeplicates
函数,因此if(hasdeplicates)
将始终为真。@hughes谢谢!
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;
});
function hasDuplicates(newCar){
var returnVal = false;
angular.forEach($scope.cars, function(car, key){
if (angular.equals(car, newCar))
{
returnVal = true;
}
});
return returnVal;
};