Development Tip

array.contains의 jquery 버전

yourdevel 2021. 1. 7. 20:05
반응형

array.contains의 jquery 버전


jQuery는 (핵심 기능의 일부로 또는 사용 가능한 플러그인을 통해) 객체의 존재에 대해 배열을 테스트 할 수 있습니까?

또한 array.remove배열에서 주어진 객체를 제거하는 것과 같은 것을 찾고 있습니다. jQuery가이를 처리 할 수 ​​있습니까?


jQuery.inArray 는 검색 한 항목과 일치하는 첫 번째 인덱스를 반환하거나 찾을 수없는 경우 -1을 반환합니다.

if($.inArray(valueToMatch, theArray) > -1) alert("it's in there");

array.remove가 필요하지 않습니다. 스플 라이스 사용 :

theArray.splice(startRemovingAtThisIndex, numberOfItemsToRemove);

또는 jQuery.grep 유틸리티를 사용하여 "제거"를 수행 할 수 있습니다 .

var valueToRemove = 'someval';
theArray = $.grep(theArray, function(val) { return val != valueToRemove; });

목록에 요소 목록이 포함 된 경우 jQuery.not 또는 jQuery.filter사용 하여 "array.remove"를 수행 할 수 있습니다 . (원래 질문의 높은 Google 점수 때문에 답변이 추가되었습니다).


개체를 제거하는 방법을 찾았습니다.

foot = { bar : 'test'};
delete foot[bar];

이것은 jQuery가 아니지만 한 줄로 편리한 'contains'메서드를 배열에 추가 할 수 있습니다. 나는 이것이 가독성에 도움이된다는 것을 알았다 (특히 파이썬 사람들에게).

Array.prototype.contains = function(a){ return this.indexOf(a) != -1 }

예제 사용

 > var a = [1,2,3]
 > a.contains(1)
true
 > a.contains(4)
false

마찬가지로 제거

Array.prototype.remove = function(a){if (this.contains(a)){ this.splice(this.indexOf(a),1)}; return this}

> var a = [1,2,3]
> a.remove(2)
[1,3]

또는 변경된 배열이 아닌 제거 된 것을 반환하려면

Array.prototype.remove = function(a){if (this.contains(a)){ return this.splice(this.indexOf(a),1)}}

> var a = [1,2,3]
> a.remove(2)
[2]
> a
[1,3]

참조 URL : https://stackoverflow.com/questions/450717/jquery-version-of-array-contains

반응형