第一个项目-需要从嵌套数组中进行测验,但循环以某种方式卡在数组的第二个位置上,并且正在跳过第一个位置。也陷入无限循环-
var quiz = [
[ "what color is the sky?" , "blue" ],
[ "what color are most apples?", "red" ],
[ "what color is coffee?" , "black" ]
];
var i;
for ( i = 0; i < 3; i++) {
if (i = 0) {
var ans1 = prompt(quiz[0][0]);
} else if (i = 1) {
var ans2 = prompt(quiz[1][0]);
} else {
var ans3 = prompt(quiz[2][0]);
}
}
document.write(ans1 + ans2 + ans3);
我的逻辑是,如果从一开始就i = 0,则应运行第一个提示,然后完成将i变量加1的循环,然后运行第二个提示,依此类推。
我尝试查找它,尝试了 while 循环,并尝试将最后一个 else 更改为 else if(i = 2)。 / p>
答案 0 :(得分:3)
您需要将if (i = 0)
更改为if (i == 0)
。在Javascript和许多其他编程语言中,=
表示赋值,而==
表示比较。由于您尝试将i
与一个整数进行比较,因此需要比较运算符,而不是赋值运算符。
答案 1 :(得分:1)
单个=
是一项分配。您想要一个双方程式进行比较:
var quiz = [
[ "what color is the sky?" , "blue" ],
[ "what color are most apples?", "red" ],
[ "what color is coffee?" , "black" ]
];
var i;
for ( i = 0; i < 3; i++) {
if (i == 0) {
var ans1 = prompt(quiz[0][0]);
} else if (i == 1) {
var ans2 = prompt(quiz[1][0]);
} else {
var ans3 = prompt(quiz[2][0]);
}
}
document.write(ans1 + ans2 + ans3);
答案 2 :(得分:1)
问题出在=
运算符使用==
或更佳的===
,但是在这种情况下,您不需要循环或条件。
var quiz = [
[ "what color is the sky?" , "blue" ],
[ "what color are most apples?", "red" ],
[ "what color is coffee?" , "black" ]
];
var ans1 = prompt(quiz[0][0]);
var ans2 = prompt(quiz[1][0]);
var ans3 = prompt(quiz[2][0]);
document.write(ans1 + ans2 + ans3);
答案 3 :(得分:0)
if (i = 0){
}
您正在为变量i分配值,而不是对其进行比较。使用“ ==” 比较if条件中的两个值。
if (i == 0){
}