Jam*_*urn 14 javascript arrays push angularjs
使用AngularJS,我在我的应用程序中创建了一个addTodo函数.
我似乎无法实现一种方法来检查添加到数组中的对象的唯一性,并使其后跟其他操作.
到目前为止,我能够使其他操作正常工作,但不能初步检查唯一性.如何实现对唯一性操作的检查,然后执行其他操作?
addTodo函数我试图像这样创建流程(粗体意味着没有实现):
检查todo是否已经在todos中
1A.如果确实存在,请不要按,显示警报
检查待办事项是否为空白
2A.如果是空白,请不要按,显示警报
如果是唯一而非空白,请按todos,显示成功消息
当前的addTodo函数(没有unqiueness检查):
$scope.addTodo = function(){
$scope.isVisible = true;
if ($scope.todo) {
$scope.todos.push($scope.todo);
$scope.todo = '';
$scope.alert = $scope.alerts[1];
}else{
$scope.alert = $scope.alerts[0];
}
};
Run Code Online (Sandbox Code Playgroud)
注1:$scope.alert与$scope.alerts用于显示某些错误消息;
$scope.alerts[0]
Run Code Online (Sandbox Code Playgroud)
"请为你的任务添加文字."
$scope.alerts[1]
Run Code Online (Sandbox Code Playgroud)
"增加了一项新任务!"
如果要添加的任务已存在,我想显示的警报是
$scope.alerts[3]
Run Code Online (Sandbox Code Playgroud)
"任务已在列表中."
注意2:$scope.isVisible切换警报的可见性
Meh*_*hdi 21
用Array.indexOf这种方式:
$scope.addTodo = function(){
$scope.isVisible = true;
if ($scope.todo) {
if ($scope.todos.indexOf($scope.todo) == -1) {
$scope.todos.push($scope.todo);
$scope.todo = '';
$scope.alert = $scope.alerts[1];
}else{
// $scope.todo is already in the $scope.todos array, alert the user
$scope.alert = $scope.alerts[3];
}
}else{
$scope.alert = $scope.alerts[0];
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28504 次 |
| 最近记录: |