prosource

AngularJS: 원래 배열에서 필터링된 값의 인덱스 위치를 찾습니다.

probook 2023. 2. 16. 21:54
반응형

AngularJS: 원래 배열에서 필터링된 값의 인덱스 위치를 찾습니다.

$scope.data = [
    {
    "name": "Jim",
    "id" : 25
    },
    {
    "name": "Jerry",
    "id": 27
    },
    {
    "name": "Rithika",
    "id": 20
    }
    ];

    <div ng-repeat="person in data | filter: {id:20}">
        {{parent_index}}
    </div>

parent_index - 실제 배열에서 필터링된 요소의 인덱스.

이 예에서는 parent_index가 2를 반환해야 합니다.어떻게 찾을 수 있을까요?

원래 배열에서 필터링된 값의 인덱스 위치를 찾습니다.

이것을 사용해 보세요.

<div ng-repeat="person in data | filter: {id:20}">
    {{data.indexOf(person)}}
</div>

출력:2

데모

다음은 지정된 속성 값에서 배열 내 객체의 인덱스를 찾기 위한 작은 도우미 함수입니다.

function getIndexOf(arr, val, prop) {
      var l = arr.length,
        k = 0;
      for (k = 0; k < l; k = k + 1) {
        if (arr[k][prop] === val) {
          return k;
        }
      }
      return false;
    }

예:

var arrOfobj = [
       {a:1, b:1, c:1}, //index 0
       {a:2, b:2, c:2}, //index 1
       {a:3, b:3, c:3} //index 2
    ];
var index = getIndexOf(arrOfobj, "2", "a");

속성 "a"가 배열의 두 번째 개체에 값 2를 가지므로 위의 스크립트는 인덱스 = 1이 됩니다.

사용할 수 있습니다.$index루프의 값입니다.

<div ng-repeat="person in data | filter: {id:20}">{{$index+1}}<div>

언급URL : https://stackoverflow.com/questions/20756694/angularjs-find-the-index-position-of-filtered-value-in-the-original-array

반응형