我正在尝试在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()
。
答案 0 :(得分:4)
您需要使用indexOf
。你的代码片段是
if($scope.names.indexOf(name1) < 0) { //Value not exists in your array
$scope.names.push(name1);
}
答案 1 :(得分:0)
或者,考虑使用underscore.js有很多有用的功能,包括_.find()