我试图在AngularJS数组上使用JavaScript的find()
函数。这是合法的,对吧?
这个非常简单的代码给我带来了一些问题。它说$scope.names.find(name1)
的返回值不是一个函数。
TypeError: Name1 is not a function
if($scope.names.find(name1) !== name1) {
$scope.names.push(name1);
}
我也试过…
if($scope.names.find(name1) === undefined) {
$scope.names.push(name1);
}
和
if(!$scope.names.find(name1)) {
$scope.names.push(name1);
}
这个if
在一个循环中。如果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);
}
});
我不知道这个错误指的是什么。我一定是误用了find()
您需要使用indexOf
。你的代码片段应该是
if($scope.names.indexOf(name1) < 0) { //Value not exists in your array
$scope.names.push(name1);
}
也可以考虑使用下划线。js中有很多有用的函数,包括_.find()