Javascript 在数组范围内的每个索引内搜索特定字符串(angularjs)

Javascript 在数组范围内的每个索引内搜索特定字符串(angularjs),javascript,angularjs,Javascript,Angularjs,我开始学习angularjs(我是个初学者,所以请善待我) 我正在制作一个民意测验应用程序,我正在使用angular来做这个 我有一个名为items的数组范围,它包含将添加到轮询的所有项 $scope.items = [] 我正在制作一个错误处理脚本,该脚本将通知用户某个特定的投票项目是否已经在项目数组中,并且我无法在数组中直接执行indexOf方法来搜索某个项目是否已经存在,因为我的代码将直接向数组中添加数字,如1。项目1,2。第2项、第3项。item3因此我想搜索items[]中的所有索引

我开始学习angularjs(我是个初学者,所以请善待我)

我正在制作一个民意测验应用程序,我正在使用angular来做这个

我有一个名为
items
的数组范围,它包含将添加到轮询的所有项

$scope.items = []
我正在制作一个错误处理脚本,该脚本将通知用户某个特定的投票项目是否已经在
项目
数组中,并且我无法在数组中直接执行
indexOf
方法来搜索某个项目是否已经存在,因为我的代码将直接向数组中添加数字,如
1。项目1
2。第2项、第3项。item3
因此我想搜索items[]中的所有索引,并在索引中执行
indexOf
方法,查看是否已经存在一个项

我有一个代码,如果数组中已经存在一个项,那么它应该返回
true
,否则返回
false

    //number of items in the array
    var itemNum = $scope.items.length + 1;
    //the item which the user entered
    var toBeAdded = $scope.pollItem;

    //try to search the items[] array if an item already exists
    var findItem = function (){
        for (var i = 0; i < itemNum-1; i++) {
            if ($scope.items[i].indexOf(toBeAdded) >= 0) {
                return true
            }else{
                return false
            }
        }
    }

    //add the item into the poll if findItem() function returns false
    if (!findItem) {
        $scope.items.push(itemNum.toString() + " " + toBeAdded);
        $scope.pollItem = "";
        focus('pollItem');
    }else{
        alert('item already exists')
    }
//数组中的项数
var itemNum=$scope.items.length+1;
//用户输入的项目
var tobeaded=$scope.pollItem;
//如果项已存在,请尝试搜索items[]数组
var findItem=函数(){
对于(var i=0;i=0){
返回真值
}否则{
返回错误
}
}
}
//如果findItem()函数返回false,则将该项添加到轮询中
如果(!findItem){
$scope.items.push(itemNum.toString()+“”+tobedded);
$scope.pollItem=“”;
焦点(“项目”);
}否则{
警报('项目已存在')
}
但它总是返回“true”(即使我的items数组为空)。我不知道我做错了什么。请帮忙


感谢所有能帮助我的人。

当您通过
var findItem=function(){…}
定义函数时,必须通过
findItem()
调用它,否则它将不会被执行,因为
findItem
不是空的,所以
!findItem
将始终为
false
,因为javascript将
findItem
识别为
变量

因此,将
if(!findItem)
更改为
if(!findItem())
将解决您的问题

请参阅下面的代码片段

var项目=[];
var Tobeaded={
测试:“测试”
};
var findItem=函数(){
对于(变量i=0;i=0){
返回真值
}否则{
返回错误
}
}
}
如果(!findItem()){
物品。推送(带头);
}否则{
警报(“项目已存在”);
}

控制台日志(项目)我觉得错过了这一点很愚蠢。顺便说一下,非常感谢你的回答!是的,当然!再次感谢!