你好我的代码中有什么问题:
var question = prompt("What is your favorite cars?");
var cars = ["BMW", "Volvo", "Saab", "Ford"];
for (cars = 0; cars <= 3; cars+= 3) {
if (question === cars) {
alert("That is a great car!");
} else {
alert("Nah, there is better choices!");
}
}
&#13;
即使您从阵列插入一些汽车,它也不会激活第一个警报。但是当我将符号从===更改为!==然后第一个警报被激活。
现在我认为它是这样的:当我问问题并且用户从我的数组插入答案时,如果答案等于(===)我的数组(汽车)第一个警报将会运行,否则(否则)然后我的第二个警报应该运行。但在这种情况下,只有我的第二个警报运行用户的答案。 我知道,如果没有&#34; for循环&#34;可能有可能做到这一点。但我必须尝试这种方式。 我错了代码还是我的逻辑错了?
答案 0 :(得分:3)
您可能需要查看here。迭代cars数组中的项目的方式不正确。
var question = prompt("What is your favorite cars?");
var cars = ["BMW", "Volvo", "Saab", "Ford"];
for (i = 0; i < cars.length; i++) {
if (question === cars[i]) {
alert("That is a great car!");
break;
} else {
alert("Nah, there is better choices!");
break;
}
}
&#13;
答案 1 :(得分:3)
无需循环:
var question = prompt("What is your favorite cars?");
var cars = ["BMW", "Volvo", "Saab", "Ford"];
if (cars.indexOf(question)!==-1) {
alert("That is a great car!");
} else {
alert("Nah, there is better choices!");
}
&#13;
您可以使用indexOf方法搜索数组...
答案 2 :(得分:2)
首先,您可以在此处定义cars
变量:
var cars = ["BMW", "Volvo", "Saab", "Ford"];
但是在下一行完全将其替换为0
:
cars = 0
如果要存储多个内容,请使用多个变量:
var cars = ["BMW", "Volvo", "Saab", "Ford"];
for (var i = 0; i <= 3; i += 3) {
//...
此外,永远不会为真:
if (question === cars) {
因为cars
是当前代码中的数字(0
)或我的版本中的数组而question
是字符串(用户的响应)。如果要与数组中的值进行比较,您可能需要这样:
if (question === cars[i]) {
除此之外,你还不清楚你在这个循环中逻辑上要做什么。它只会迭代一次,因为你立即在递增值上加3,从而终止循环(因为循环最多只有3)。因此,如果您只是尝试将其与数组中的第一个值进行比较,而仅该值,那么您根本不需要循环。
或者,如果 尝试遍历整个阵列,那么从逻辑上讲,您将获得4条消息。其中一个可能是第一条消息,其余的将是第二条消息。这可能会让用户感到困惑。
答案 3 :(得分:1)
你的代码犯了很多错误。您可能想要的是:
var inArray = false;
var question = prompt("What is your favorite cars?");
var cars = ["BMW", "Volvo", "Saab", "Ford"];
for (i = 0; i < cars.length; i++) {
if (question === cars[i]) {
inArray = true;
}
}
if(inArray){
alert('great');
}else{
alert('nah');
}
1)你的for循环构造错误 - 你应该循环遍历数组的长度 2)如果你把你的警报放在forloop中它会给弹出窗口等于你的数组中的项目数量(由于其他条件) 3)使用cars [i]检查数组中项目的相等性,而不是对整个数组(汽车)
答案 4 :(得分:1)
var question = prompt("What is your favorite cars?");
var cars = ["BMW", "Volvo", "Saab", "Ford"];
for (i = 0; i <= 3; i++) {
if (question === cars[i]) {
alert("That is a great car!");
} else {
alert("Nah, there is better choices!");
}
}
答案 5 :(得分:1)
请看下面。您需要访问cars数组中的各个元素,并在for循环中增加1。
var question = prompt("What is your favorite cars?");
var cars = ["BMW", "Volvo", "Saab", "Ford"];
for (i= 0; i < 3; i+= 1) {
if (cars[i] === question) {
alert("That is a great car!");
} else {
alert("Nah, there is better choices!");
}
}