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

标签 javascript arrays loops if-statement for-loop

我正在自学 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');
        }

    }

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

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

最佳答案

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

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

if(options.indexOf(choice) !== -1) {
  console.log('match');
}

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

所以你可以做相反的事情,看看是否没有匹配。

if(options.indexOf(choice) === -1) {
  console.log('no match');
}

关于javascript - 检查变量是否与 JavaScript 中的数组匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33583789/

相关文章:

c - scanf() 在 for 循环中不能正常工作

javascript - 标记数组中的重复项

javascript - 虚拟键盘事件

C 指向二维数组的指针

javascript - 通过 ids 匹配 2 个数组(用户[用户 id 作为键]到订单[订单 ids 数组的值])

python - 如何提高 Python 3.9.0 中列表迭代的速度?

java - 迭代具有相同属性的输入对象集合 : Java Selenium Webdriver

javascript - 从麦克风读取到 .wav

javascript - 自定义拼写检查器 Javascript

javascript - 如何使用本地存储中的详细信息成功登录 [JavaScript]