Javascript 查找(值)返回值';不是一个函数';

Javascript 查找(值)返回值';不是一个函数';,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我试图在AngularJS数组上使用JavaScript的find()函数。这是合法的,对吧 这个非常简单的代码给我带来了一些问题。这意味着$scope.names.find(name1)的返回值不是函数 TypeError:Name1不是函数 if($scope.names.find(name1) !== name1) { $scope.names.push(name1); } 我也试过 if($scope.names.find(name1) === undefined) { $

我试图在AngularJS数组上使用JavaScript的
find()
函数。这是合法的,对吧

这个非常简单的代码给我带来了一些问题。这意味着
$scope.names.find(name1)
的返回值不是函数

TypeError:Name1不是函数

if($scope.names.find(name1) !== name1) {
   $scope.names.push(name1);
}
我也试过

if($scope.names.find(name1) === undefined) {
   $scope.names.push(name1);
}

如果处于循环中,则该
。如果
name
不在数组中,则添加它。如果它已经在数组中,请不要添加它

以下是循环:

angular.forEach($scope.names1, function (name1) {
    angular.forEach($scope.names2, function (name2) {
        if (name1 === name2) {
            $scope.names.push(name1);
        }
    });
    if ($scope.names.find(name1) === name1) {
        $scope.names.push(name1);
    }
});

我不知道这个错误到底指的是什么。我一定是误用了。

您需要使用
indexOf
。您的代码片段将是

if($scope.names.indexOf(name1) < 0) { //Value not exists in your array
   $scope.names.push(name1);
}
如果($scope.names.indexOf(name1)<0){//Value在数组中不存在
$scope.names.push(name1);
}

备选地,考虑使用有很多有用的函数,包括“.find())/p>,如您在DOCs <代码>中找到的,查找< /COD>以回调函数作为参数,使用<代码>如果($$范围.No.find(函数(NAME1){ $范围).No.Press(NAME1);})}
不,它说的是
name1
不是函数。
TypeError:name1不是函数
,因为
.find
接受回调函数并对数组项执行它,然后返回满足回调函数的项的值。@DaveNewton错误是不言自明的,它说传递的参数不是函数,这意味着参数应该是function@Tushar这正是我所说的。索引为零意味着元素位于第零位,因此确实存在于数组中。您可以改为执行
$scope.names.indexOf(name1)==-1
。或
$scope.names.includes(name1)
if($scope.names.indexOf(name1) < 0) { //Value not exists in your array
   $scope.names.push(name1);
}