我只是在尝试制作一个非常简单的程序,该程序从提示中输入一个字符,检查它是否在数组中,然后提示答案。我在早期学习中,只是发现了新的.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”,但可以得到帮助,我正在尝试使用简单的结构来学习基础知识,而不是我尚未想到的理想的,有创造力的事物。谢谢。
答案 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");
}