6

有没有办法让一个变量具有多个值,如下所示:

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

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

因此,如果变量 enterVal 等于 1、2 或 3,它会提醒消息。我似乎无法理解它。

4

6 回答 6

10

无法将多个不同的值分配给单个变量。

另一种方法是拥有variable一个Array,您可以检查是否enteredval在数组中。

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

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

请注意,indexOf数组在 IE8 及以下版本中不可用(请参阅底部的“要求”部分)。在这种情况下,您需要使用框架/库的方法,或者自己编写:

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
于 2013-04-04T17:45:04.363 回答
1

您可以将它们存储在一个数组中并使用indexOf(只要您不需要 IE 8 支持):

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

if(supportedOptions.indexOf(enteredVal) !== -1) alert("Yep!");
于 2013-04-04T17:38:32.880 回答
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!
    }
}
于 2013-04-04T17:46:00.213 回答
1

您可以将变量的值作为键存储在对象中。例如:

let variable={
  1:0,
  2:0,
  3:0
}

enteredVal=3

if (enteredVal in variable) {
  alert('You chose the right number');
}
于 2019-11-19T22:48:54.920 回答
0

您将要创建一个array可以容纳多个值的。然后,您将要使用index of来确定是否在数组中找到该值。

var myArray = new Array();

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

检查值:

if(myArray.indexOf(1) > -1){
// exists
}
于 2013-04-04T17:38:23.310 回答
0

您可以实现字符串的 indexof 函数。

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

    if (variable.indexOf(enteredval) > -1) { alert('you choosed the right number'); };
于 2013-04-04T17:40:25.403 回答