无法使用indexOf方法从数组中找到特定值

时间:2017-01-07 14:11:49

标签: javascript angularjs

下面是我的数组:

$scope.Statistics = [];

此统计数组包含如下记录:

['Usa'] : regions: 
          [0] : name : 'chicago'
          [1] : name : 'miami'
          [2] : name : 'alaska'
          [3] : name : 'washington'

这是我的循环:

<tr ng-repeat="region in Statistics[currentRegion].regions">
   <a data-ng-click="Myfunc(region.name)">
   </a>
 </tr>

$scope.currentRegion = 'Usa';
 $scope.Myfunc = function (region) {
        $scope.currentIndex = $scope.Statistics[$scope.currentRegion].regions.indexOf(region);
        console.log($scope.currentIndex); // -1
    }

以下是我遇到的错误:

  

indexOf()方法返回给定元素的第一个索引   可以在数组中找到,如果不存在,则返回-1。

如何从此统计数组中找到相应的区域?

1 个答案:

答案 0 :(得分:1)

传入整个对象并获取该对象在数组中的索引。

您正在尝试获取数组中对象属性的索引,但该数组包含整个对象

更改为

<a data-ng-click="Myfunc(region)">

或者您已经可以使用$index中的ng-repeat访问索引,只要您不对原始数组使用任何过滤