배열에 값이 있는지 확인합니다(각도).JS)
현재 사용하고 있는 것은forEach()
-array of angular를 사용하여 새 값을 확인합니다.그러나 이는 잘못된 접근법입니다. 예를 들어 목록에 20개의 개체가 있습니다.기존 아티클을 사용하여 개체를 만드는 경우 forEach의 if-statement는 아티클이 1회 존재하는 경우와 존재하지 않는 경우를 19회 나타냅니다.
다음 코드:
var list = [];
articlelist.forEach(function (val) {
list.push(val.artNr);
});
$log.info(list);
그articlelist
에는 20개의 오브젝트가 모두 포함되어 있습니다.비교하기 위해서, 나는 단지 필요한 것은artNr
왜냐하면 사용자가 새로운 문서를 작성할 때 추가된 artNr이 이미 존재하는지 확인하기 위한 if-Statement여야 하기 때문입니다.
$scope.createItem = function (createItem) {
if(list.artNr === createItem.artNr) {
$scope.message = 'artNr already exists!';
}
...
};
문제는 이 list.artNr이 목록 변수가 배열이기 때문에 "정의되지 않음"을 반환한다는 것입니다.
콘솔 = > 출력 목록 표시
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 상세:
- http://www.w3schools.com/jsref/jsref_indexof_array.asp
- https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf
index Of()를 사용할 수 있습니다.예를 들어 다음과 같습니다.
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을 반환합니다.
이런 것도 쓸 수 있어요.
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
'programing' 카테고리의 다른 글
GSON을 사용하여 JSON 파일을 해석하는 방법 (0) | 2023.04.03 |
---|---|
PHP 스크립트/WP REST API에 대한 동시 AJAX 요청이 왜 이렇게 느리죠? (0) | 2023.04.03 |
작은 따옴표를 큰 따옴표로 구분하는 방법 (0) | 2023.04.03 |
리액트의 cdn/script 태그에서 javascript 패키지를 Import하려면 어떻게 해야 하나요? (0) | 2023.04.03 |
텍스트 주소를 사용한 Google 지도와 스트리트 뷰 지도 (0) | 2023.04.03 |