-3

所以我学习 javascript 并决定做一个有趣的测验,当我做测验时遇到了这个问题,它要求答案它只需要“是”而不是“是”的例子......

var questions = [
['Do you like Pizza', 'Yes']
 ];

function askQuestion(question) {
var answer = prompt(question[0],'');
    if (answer == question[1]) {
        alert('Correct!');
        score++;
    } else { 
        alert('Sorry the correct answer is ' + question[1]);
        }
} 
for (var i=0;i<questions.length; i++) {
    askQuestion(questions[i]);
}

它只会用大写的 Y 来回答,我知道这是一个不好的例子。但我想你知道我在说什么。

4

2 回答 2

2

我将继续发布似乎很明显的内容-您正在接受一个字符串并将其与“是”进行比较,但是您需要将两个值的字母大小写设置为相同,然后进行比较。例如:

var questions = [
    ['Do you like Pizza', 'Yes']
];

var input = document.getElementById("user_input").value;
if (input.toLowerCase() == questions[i][1].toLowerCase()) {
    // `input` was "yes", "yEs", "Yes", etc.
}

更新

既然您共享了实际代码,请将您的函数更改为:

function askQuestion(question) {
    var answer = prompt(question[0],'');
    if ((""+answer).toLowerCase() == (""+question[1]).toLowerCase()) {
        alert('Correct!');
        score++;
    } else { 
        alert('Sorry the correct answer is ' + question[1]);
    }
}

请注意我如何将用户的答案和问题的正确答案都转换为字符串(以确保您可以实际调用toLowerCase,因为它仅适用于字符串),然后同时调用toLowerCase两者。

于 2012-10-31T22:32:31.137 回答
1

我会接受您的回答和用户的回答,并使用 .toLowerCase() 方法将它们都设为小写。

于 2012-10-31T22:31:51.003 回答