2012-11-28 61 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並檢查每個元素。

但是,如果您不關心IE 8或更早版本,則可以使用indexOf

+0

原諒我,我是新來的JavaScript,但當我聽到人們說,我通常看到他們做這樣的事情: var myArrayLength = myArray.length;' 但從我可以告訴只有使myArrayLength = 3我想我不知道該怎麼做。 – badmidget

+2

@ user1860777我不明白這是如何與問題或此答案相關的。 – phant0m

+0

正如我所說,我是JavaScript新手,所以我很欣賞你提供的信息。現在,我做了Bruno描述的老式學校方式,但我很高興現在知道indexOf。我相信我會盡快使用它。 – badmidget