programing

배열에 값이 있는지 확인 (AngularJS)

shortcode 2021. 1. 17. 11:18
반응형

배열에 값이 있는지 확인 (AngularJS)


이 질문에 이미 답변이 있습니다.

현재 저는 forEach()객체 배열로 새 값을 확인하기 위해 -method of angular를 사용하고 있습니다. 그러나 예를 들어 목록에 20 개의 개체가 있기 때문에 이는 잘못된 접근 방식입니다. 기존 기사로 객체를 생성 할 때 forEach의 if 문은 기사가 존재하고 19 번 존재하지 않음을 알려줍니다.

다음 코드 :

var list = [];

articlelist.forEach(function (val) {
   list.push(val.artNr);
});

$log.info(list);

articlelist20 개의 개체가 모두 포함됩니다. 비교를 위해서는 artNr. 사용자가 새 기사를 만들 때 추가 된 artNr이 이미 존재하는지 확인하기 위해 if-Statement 여야하기 때문입니다.

$scope.createItem = function (createItem) {
  if(list.artNr === createItem.artNr) {
      $scope.message = 'artNr already exists!';
  }
...
};

문제는 list.artNr이 목록 변수가 배열이기 때문에 "undefined"를 반환한다는 것입니다.

콘솔의 목록 출력 => Array ["AB001", "AB002", "AB003", "AB004"],

createItem 출력 : => Object { artNr: "AB001", description: "New Article" ...}

새로 생성 된 객체를 목록 변수의 배열과 어떻게 비교할 수 있습니까?


indexOf기능을 사용할 수 있습니다 .

if(list.indexOf(createItem.artNr) !== -1) {
  $scope.message = 'artNr already exists!';
}

indexOf에 대한 추가 정보 :


indexOf () 사용할 수 있습니다 . 처럼:

var Color = ["blue", "black", "brown", "gold"];
var a = Color.indexOf("brown");
alert(a);

같이 IndexOf () 메소드를 검색하여, 지정된 항목에 대한 배열을 반환 위치. 그리고 반환 -1 항목이 발견되지 않는 경우.


처음부터 끝까지 검색하려면 lastIndexOf () 메서드를 사용하십시오 .

    var Color = ["blue", "black", "brown", "gold"];
    var a = Color.lastIndexOf("brown");
    alert(a);

검색은 지정된 위치에서 시작하거나 시작 위치가 지정되지 않은 경우 끝에서 시작되고 배열의 시작 부분에서 검색이 종료됩니다.

항목이 없으면 -1을 반환합니다 .


U는 이런 식으로 사용할 수 있습니다 ....

  function (field,value) {

         var newItemOrder= value;
          // Make sure user hasnt already added this item
        angular.forEach(arr, function(item) {
            if (newItemOrder == item.value) {
                arr.splice(arr.pop(item));

            } });

        submitFields.push({"field":field,"value":value});
    };

참조 URL : https://stackoverflow.com/questions/32610282/check-if-value-exists-in-the-array-angularjs

반응형