Array.find(value)返回值'不是函数'

Array.find(value) return value 'is not a function'

本文关键字:函数 返回值 find value Array      更新时间:2023-09-26

我试图在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()