代码之家  ›  专栏  ›  技术社区  ›  Learning-Overthinker-Confused

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

  •  -4
  • Learning-Overthinker-Confused  · 技术社区  · 8 年前

    下面是我的数组:

    $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 回复  |  直到 7 年前
        1
  •  1
  •   charlietfl    8 年前

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

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

    改为

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

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