2012-11-28 2 views
0

변수가 배열의 요소와 같은지 어떻게 확인합니까?배열의 모든 요소와 어떻게 일치합니까?

var myButton = document.getElementById("myButton"); 
var myVar; //myVar value is set to "One", "Two" or "Three" sometime later 

myArray = ["One","Two","Three"]; 

myButton.onclick = function() { 
    if (myVar === myArray) { 
     alert ("it's a match!"); 
    } else { 
       alert ("it's not a match!"); 
     } 
}; 
+3

가장 간단하고 효율적인 루프하는 것입니다해야한다. 멋진 것을 원한다면 http://stackoverflow.com/questions/890782/javascript-function-inarray –

+0

루프해야하지만, 첫 번째 경기에서 '휴식;'을하면 루핑을 계속할 필요가 없습니다. –

답변

1

이것은

myButton.onclick = function() { 
    var i = myArray.length; 
    while(i--) { 
     if(myVar === myArray[i]) { 
      alert("it's a match"); 
      return; 
     } 
    } 
    alert("it's not a match"); 
} 
+0

감사합니다! i = 0 일 때 while 루프를 종료 할 것입니까? –

+0

당신은 indexOf()를 다시 발명합니까? – epascarello

+0

아닙니다. 모든 브라우저에서 지원한다면 대답을 바꿀 것입니다. – Bruno

1

myArray을 통해 반복하고 각 요소를 확인해야합니다.

그러나 Internet Explorer 8 이하를 염두에 두지 않으면 indexOf을 사용할 수 있습니다.

+0

용서해주세요. 자바 스크립트를 처음 접했을 때 사람들이 보통 다음과 같은 것을 보게된다고 들었습니다. 'var myArrayLength = myArray.length;' 하지만 myArrayLength = 3 만 만들면 알 수 있습니다. 나는 그걸 어떻게 처리해야할지 모르겠다. – badmidget

+2

@ user1860777 이것이 질문이나 답변과 어떤 관련이 있는지 이해할 수 없습니다. – phant0m

+0

내가 말했듯이, 나는 자바 스크립트에 익숙하지 않기 때문에 당신이 제공 한 정보에 감사 드린다. 지금은 브루노가 설명한 노인 학교의 방식대로 했었지만 지금은 indexOf에 대해 알고 행복합니다. 나는 곧 그것을 사용할 것이라고 확신한다. – badmidget

관련 문제