2009-11-25 8 views
3

나는 많은 질문을 통해 여기를 검색하지만 havent은 내 청구서에 맞는 것으로 생각한다.자바 스크립트 특정 번호의 존재 여부를 확인하는 배열

특정 번호를 검색하고 그 번호가 배열에있는 경우, 그 다음에 조치를 취하고 싶지 않은 경우 다른 조치를 취하기를 원합니다.

나는이

var Array = ["1","8","17","14","11","20","2","6"]; 

for(x=0;x<=Array.length;x++) 
{ 
    if(Array[x]==8) 
     then change picture.src to srcpicture1 
    else 
     then change picture.src to srcpicture2 
} 

같은 것을 가지고 있지만,이 배열의 아이폰에 프로그램을 실행하고 배열의 마지막 요소를 확인 결국 마지막 요소가 아니므로 (8) 다음의 정보는 다음의 제품에 사진을 변경됩니다 것 그림 2.

이제 왜 이런 일이 발생하는지 알 수 있습니다. 배열에 특정 숫자가 포함되어 있는지 확인하는 방법에 대한 아이디어는 없습니다.

미리 감사드립니다. 그런 다음 먼저 배열을 정렬 단지 수는있을 것이다 지점까지 배열을 확인할 수 있습니다

for(x=0;x<=Array.length;x++) 
{ 
    if(Array[x]==8) { 
     //change picture.src to srcpicture1 
     break; 
    } 
} 
+0

Array를 변수 이름으로 사용하지 않는 것이 좋습니다. 그것이 효과가 있더라도 (나는 확실하지 않습니다), 문제를 일으킬 수 있습니다. –

+0

나는 실제로, 나는 실제로, 나는 myArray를 쓰는 것을 잊었다 알고있다 –

답변

8

는 요소가 배열에 속하는지 확인하기 위해 자신에게 함수를 작성할 수 있습니다 :

function inArray(array, value) { 
    for (var i = 0; i < array.length; i++) { 
     if (array[i] == value) return true; 
    } 
    return false; 
} 

을 그리고는 수행

var arr = ["1","8","17","14","11","20","2","6"]; 
if (inArray(arr, 8)) { 
    // change picture.src to srcpicture1 
} else { 
    // change picture.src to srcpicture2 
} 

그것은 더 많은 읽을 나에게있다.

Array.prototype.has = function (value) { 
    for (var i = 0; i < this.length; i++) { 
     if (this[i] === value) return true; 
    } 
    return false; 
}; 

을 그리고

if (arr.has(8)) // ... 

더욱이을 누르면, 당신은 확인할 수 있습니다 다음 호출은 다음과 같습니다 추가 포인트를 들어


당신과 같이 배열 프로토 타입에 기능을 추가 할 수 있습니다 배열에 대해 indexOf() 메소드를 사용하고 그것을 사용하십시오 - 그렇지 않은 경우 위의 코드로 바꾸십시오.


P. 변수 이름에 Array을 사용하지 마십시오. 실제 배열 유형을 위해 예약되어 있기 때문입니다.

+0

감사합니다. Emil. 그게 좋은 생각 같아요. 지금은 시도해 본다. –

+7

indexOf 메소드를 찾아서 사용할 수 있다면 사용해야한다. ... – James

+2

buidl-in 객체 프로토 타입을 수정하지 않겠습니까? 오직 당신이해야 할 경우에만 ... 질문에 관하여 - 이곳에 underscore.js라고 불리는 좋은 (그리고) 가벼운 (!) 도서관이 있습니다. 배열 등을 사용하여 작업 할 수있는 50 가지 유용한 메소드. http://documentcloud.github.com/underscore/ – NilColor

3

왜 당신은 루프를 중단하지 않습니다 배열, 그것이 존재했다. 당신이 할 수있는 일

+0

그것은 내가 필요로하는, 고마워! – eshellborn

0

: 당신이 바로 그 번호를 찾을 때

0

당신이 고유 키를 가지고 빠른 검색하면 많은 관심을 것입니다 경우, 대신지도를 사용하여 고려할 수 있습니다 (배열을 사용하는 경우 하드 바인딩 된 경우 다음 물론 작동하지 않습니다). 지도를 사용하는 경우 "if (num in arr)"을 선택하면됩니다.

관련 문제