Javascript 查找(值)返回值';不是一个函数';
我试图在AngularJS数组上使用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) { $
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);
}