对于通过“添加”按钮添加的每个品牌和型号,我需要检查是否有重复项,如果有重复项则设置警报并且不让它添加到表中。似乎无法找到解决方案...
下面是我正在处理的初学者元素的完整代码。对于这篇文章,我提前表示歉意,这是我第一次来到这里...谢谢大家。
<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>
<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>
<table class="table carsTable">
<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>
<script>
var carsApp = angular.module('carsApp', []);
carsApp.controller('carController', function ($scope){
$scope.cars = [];
$scope.add = function () {
$scope.cars.push({
make: $scope.make,
model: $scope.model
});
$scope.make = null;
$scope.model = null;
};
$scope.rowClick = function(car){
$scope.make= car.make;
$scope.model= car.model;
};
$scope.alert = function(){
alert('Already exists in table');
}
});
最佳答案
您可以通过检查数组中的每个 car
(比较品牌和型号)来检查重复项 - 您可以使用 Array.some
来完成此操作(返回一个 bool 值,如果数组中的任何元素都符合条件):
在您的添加
函数中:
var hasDuplicates = $scope.cars.some(car => car.make == $scope.make && car.model == $scope.model);
if (hasDuplicates) {
alert("Car already exists");
} else {
$scope.cars.push({
make: $scope.make,
model: $scope.model
});
}
如果不能使用箭头语法:
var hasDuplicates = $scope.cars.some(function(car) {
return car.make == $scope.make && car.model == $scope.model;
});
关于javascript - 如何检查并提醒是否有重复项插入到我的表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42075892/