Javascript程序,用于检查提示字符是否在数组中并提示答案

时间:2019-01-06 17:40:01

标签: javascript arrays alert prompt

我只是在尝试制作一个非常简单的程序,该程序从提示中输入一个字符,检查它是否在数组中,然后提示答案。我在早期学习中,只是发现了新的.include方法,但也尝试使用简单的if / else语句。这似乎几乎可行,但无论输入如何,都只会返回相同的答案。

var letters = ["a", "e", "i", "o", "u"];

var selection = prompt ("enter a letter")


if (letters.includes("selection") == "true") {
    alert ('yes');
    } 
    else {
    alert ('no');
    };

然后,我尝试了此方法,但也无法使其正常工作:

var vowel = prompt ("enter letter");

var letters = ['a', 'e', 'i', 'o', 'u'];

if (letters.indexOf('letters') !== -1) {
 alert("Yes!");
 }
 else {
 alert("No");
  }

我确定答案是一个非常新手,“ duh”,但可以得到帮助,我正在尝试使用简单的结构来学习基础知识,而不是我尚未想到的理想的,有创造力的事物。谢谢。

3 个答案:

答案 0 :(得分:0)

您正在尝试检查元音是否存在,但您正在检查完整的字符串,而不是由提示创建的变量。不要那样做检查您正在创建的变量。

接下来,您可以只执行letter.includes,而无需检查值是否为true,因为如果includes为true,它将照此执行。

var letters = ["a", "e", "i", "o", "u"];

var selection = prompt ("enter a letter")


if (letters.includes(selection)) {
    alert ('yes');
} else {
    alert ('no');
};

此外,如果==“ true”,您失败的原因是因为一个真正的布尔值最终以int形式结束,而“ true”将返回NaN。您不能将该字符串转换为布尔值。

答案 1 :(得分:0)

为什么将变量名作为字符串而不是变量ref传递给indexOf函数参数?

使用以下代码替换代码:

letters.indexOf(vowel) !== -1

代替:

letters.indexOf('letters') !== -1

答案 2 :(得分:0)

需要将变量selection而不是字符串'selection'传递到inludes()并摆脱== "true"

    var letters = ["a", "e", "i", "o", "u"];
    var selection = prompt("enter a letter")

    if (letters.includes(selection)) {
        alert('yes');
    } else {
        alert('no');
    };

几乎有这个。无需将'selection'传递到indexOf()中,您需要传递vowel

    var vowel = prompt("enter letter");
    var letters = ['a', 'e', 'i', 'o', 'u'];

    if (letters.indexOf(vowel) !== -1) {
        alert("Yes!");
    } else {
        alert("No");
    }