2013-04-04 62 views
4

多個值是否有任何方式有多個值這樣的一個變量:的Javascript變量

var variable = 1, 2, 3; 
var enteredVal = 1; 

if (enteredVal == variable){ 
    alert('You chose the right number'); 
} 

因此,如果變量enteredVal等於1,2或3,它會提醒消息。 我似乎無法擺脫困境。

+0

https://開頭開發商.mozilla.org/RU/d ocs/JavaScript/Reference/Global_Objects/Array – jgillich 2013-04-04 17:38:54

回答

9

沒有辦法將多個不同的值分配給單個變量。

另一種方法是讓variableArray,然後您可以檢查數組中是否存在enteredval

var variable = [1, 2, 3]; 
var enteredval = 1; 

if (variable.indexOf(enteredval) > -1){ 
    alert('you chose the right number'); 
} 

注意indexOf的陣列上是not usable in IE8 and below(見底部的要求部分)。在這種情況下,你需要使用一個框架/庫的方法,或寫自己:

var variable = [1, 2, 3]; 
var enteredval = 1; 

for (var i = 0; i < variable.length; i++) { 
    if (variable[i] === enteredval) { 
     alert('you chose the right number'); 
     break; // No need to check all the other values in variable 
    } 
} 

要修改陣列已實例化後,他們,看看pushpopshiftunshift添加/刪除值。要修改現有值,可以直接訪問索引並重新分配值。

variable[1] = 5; 
// variable is now [1, 5, 3] since arrays are 0-indexed 
+0

謝謝soooo :) – user1826795 2013-04-04 18:05:48

+0

@ user1826795我剛剛意識到你還沒有接受答案。這聽起來像你的問題得到了回答,所以你應該選擇最好的答案,通過點擊該答案旁邊的複選標記。它幫助那些正在尋找類似問題的人看到這是一個解決的問題,並且可以從所選的答案中受益。 – ajp15243 2014-02-21 15:05:39

0

您將要創建一個可以保存多個值的array。然後,您需要使用index of來確定在數組中是否找到該值。

var myArray = new Array(); 

myArray[0] = 1; 
myArray[1] = 2; 
myArray[2] = 3; 

檢查值:

if(myArray.indexOf(1) > -1){ 
// exists 
} 
1

您可以將它們存儲在數組中,並使用indexOf(只要你不需要IE 8支持):

var supportedOptions = [1, 2, 3], 
    enteredVal = 1; 

if(supportedOptions.indexOf(enteredVal) !== -1) alert("Yep!"); 
+0

感謝您回答如此之快,我真的很感激它。但是我還有一個問題,我如何向supportedOptions變量添加一個值。就像我以後通過buttonclick想要在選項中添加4,所以它會被支持的選項= [1,2,3,4]? – user1826795 2013-04-04 17:48:22

+2

@ user1826795:我真的推薦閱讀JavaScript教程,例如http://eloquentjavascript.net/chapter4.html,和/或查看JavaScript參考資料:https://developer.mozilla.org/en/文檔/ JavaScript的/參考/ Global_Objects /陣列。 – 2013-04-04 17:55:18

0

你可以實現字符串的indexof功能。

var variable = '1,2,3'; 
    var enteredval = '1'; 

    if (variable.indexOf(enteredval) > -1) { alert('you choosed the right number'); }; 
1

嘗試使用的數組:

var variables = [1, 2, 3]; 

可以與variables[i],其中i是數組,起始於0的索引來訪問所述陣列的成員。

variables[0]回報1

variables[1]回報2

variables[2]回報3

這樣,您就可以使用for遍歷數組迭代:

var enteredval = 1; //your guess 
for(var i = 0; i < variables.length; i++) { //go through each element 
    if(variables[i] == enteredval) { //if they match... 
     alert("You chose the right number!"); //...then you got it! 
    } 
}