javascript - Angularjs检查数组中是否存在传递值

标签 javascript angularjs angularjs-ng-repeat

我正在尝试使用 AngularJS 将两个文本字段值传递到数组中,但我还想检查传递的第一个值是否已存在于数组中。如果是,我不想再添加它,如果它不存在,则添加值。我可以让它添加值,但我在尝试检查数组中是否已经存在姓氏值时遇到了困难。我找到了一些我试图遵循的例子,但我似乎无法让它们发挥作用。感谢您的帮助!

<div class="panel-body">
    <div ng-controller="TodoCtrl">
        <ul>
            <li li ng-repeat="todo in todos">
            {{todo.text}}, {{todo.name}}
            </li>
        </ul>
        <form class="form-horizontal">
        <input type="text" ng-model="formTodoLast" ng-model-instant>
        <input type="text" ng-model="formTodoFirst" ng-model-instant>
        <button class="btn" ng-click="addTodo()"><i class="icon-plus"></i>Add</button>
    </div>
</div>

待办事项

function TodoCtrl($scope) { 
    $scope.todos = [];

    $scope.addTodo = function () {

    if($scope.todos.indexOf(text:$scope.formTodoLast) == -1) {
        $scope.todos.push({text:$scope.formTodoLast, name:$scope.formTodoFirst});
        $scope.formTodoText = ' ';
        $scope.formTodoName = ' ';
        }
    }
}

最佳答案

正如 Craig 所说,您需要这样遍历数组

var addToArray=true;
for(var i=0;i<$scope.todos.length;i++){
    if($scope.todos[i].text===$scope.formTodoLast){
        addToArray=false;
    }
}
if(addToArray){
    $scope.todos.push({text:$scope.formTodoLast, name:$scope.formTodoFirst});
}
$scope.formTodoText = ' ';
$scope.formTodoName = ' ';

关于javascript - Angularjs检查数组中是否存在传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22178199/

相关文章:

javascript - 在 React 中使用 Radium 设置悬停链接的样式

javascript - 单击按钮时不会调用函数,但会在表单加载时调用函数

angularjs - ng-repeat 中的 Angular 验证不起作用

Angularjs:$scope.variable与 View 不同步?

javascript - 动态添加项目到ng-repeat数组javascript

javascript - 访问嵌套 ng-repeat 中的父索引

javascript - AngularJS:独立于 $routeProvider 的 Controller 出现 ReferenceError

javascript - 关于 JQuery UI 的两个问题

javascript - 如何在此 javascript 中正确设置换行符的样式

javascript - 如何使用 Angular 设置默认选项?