Javascript 배열의 값 테스트
이 질문에 이미 답변이 있습니다.
- JS if 또는 문장 5 답변 단축
- 배열에 JavaScript의 객체가 포함되어 있는지 어떻게 확인합니까? 46 답변
SQL Server에서는 다음과 같이 말할 수 있습니다.
WHERE X IN(1,2)
JavaScript에서 다음을 어떻게 다시 작성 하시겠습니까?
if (X==1 || X==2) {}
배열에 indexOf
있는지 확인하는 데 사용 합니다 x
.
if([1,2].indexOf(x) !== -1)
배열 .includes
방법 사용 .
if ([1, 2].includes(x)) {
// array has x
}
배열을 사용한 다음 .indexOf()
.
var myNumbers = [1,2];
var foo = 4;
var bar = 1;
var exists = (myNumbers.indexOf(bar) > -1); //true
var notExists = (myNumbers.indexOf(foo) > -1); //false
은색 총알이 없습니다. 몇 가지 문제가있을 것입니다.
indexOf
일부 답변에서 제안한대로 수행 하는 경우 Array.indexOf
모든 브라우저에서 지원되지 않으므로 자체 대체를 제공해야합니다. 또한 이것은 O(n)
전체 배열을 통과해야하기 때문에 성능을 갖습니다 . 거대한 배열을 다루는 경우 이상적이지 않을 수 있습니다.
in
다른 답변에서 제안하는 것처럼 연산자 를 사용하는 경우 Javascript 객체의 속성은 항상 문자열이라는 것을 기억해야하므로 ===
숫자를 확인하는 경우 검사가 작동 하지 않을 것으로 기대하지 마십시오 .
당신이 제안한이 특정한 예에서, 나는 단지 좋은 오래된 것을 갈 것 if (X==1 || X==2)
입니다.
if (x in {1:true, 2:true}) { }
또는 추상화하고 싶다면 http://snook.ca/archives/javascript/testing_for_a_v 와 같이 할 수 있습니다 .
function oc (a) {var o = {}; for (var i = 0; i
여전히 ... 가장 확장 가능한 일이 아닙니다.
Javascript 1.6 필요
if ((new Array(1, 2)).indexOf(X) != -1) {
}
PHP에 in_array () 함수가 있다는 것을 알고 있지만 JS에서 비슷한 함수를 들어 본 적이 없습니다. 나는 당신이 그것을 옛날 방식으로해야한다고 생각합니다.
함수 contains (a, obj) { var i = a.length; while (i--) { if (a [i] === obj) { true를 반환하십시오. } } 거짓 반환; }
배열을 객체 리터럴로 변환하는 함수
function oc(a)
{
var o = {};
for(var i=0;i<a.length;i++)
{
o[a[i]]='';
}
return o;
}
다음과 같이 함수를 호출 할 수 있습니다.
if( name in oc(['Tom', 'Harry','Sue']) ) { ... }
그냥 재미 :
if (X*X+1*2 == (1+2)*X) {}
또는 자기 설명 :
if ((X-1)*(X-2) == 0) {}
참조 URL : https://stackoverflow.com/questions/5252650/test-for-value-in-javascript-array
'programing' 카테고리의 다른 글
자바에서 개인 메서드 재정의 (0) | 2020.12.15 |
---|---|
ASP.NET MVC 컨트롤러에 jQuery Ajax POSTing 배열 (0) | 2020.12.15 |
Mac에서 Eclipse -clean을 실행하는 방법은 무엇입니까? (0) | 2020.12.15 |
Python 하위 프로세스 와일드 카드 사용 (0) | 2020.12.15 |
Xcode에서 독립적 인 런타임 설정 세트를 구성하는 방법 (0) | 2020.12.15 |