检查变量与 JavaScript 中的数组是否匹配

Emi*_*nov 4 javascript arrays loops for-loop if-statement

我正在自学 JavaScript,我想编写一个简单的程序来检查用户输入是否在预先存在的数组中。

示例代码是:

 var options = ['rock','paper','scissors'];
 var choice = 'scissors';



var i;

    for (i=0;i<options.length;i++){
        if (choice === options[i]){
            console.log('match');
        }

    }
Run Code Online (Sandbox Code Playgroud)

我尝试添加一个 else ,这会提示用户输入新的输入,但每次 for 循环遍历与输入不匹配的数组对象时它都会运行。

我的最终目标是让这个小程序仅在检测到用户的输入与任何数组对象都不匹配时提示用户输入新输入一次。

小智 7

您可以使用 if 语句来代替 for 循环。

var options = ['rock', 'paper', 'scissors'];
var choice = 'scissors';

if(options.indexOf(choice) !== -1) {
  console.log('match');
}
Run Code Online (Sandbox Code Playgroud)

Array.indexOf() 方法在数组中搜索值,如果数组中不存在该值,则返回 -1。

因此,您可以执行相反的操作,看看是否存在不匹配的情况。

if(options.indexOf(choice) === -1) {
  console.log('no match');
}
Run Code Online (Sandbox Code Playgroud)