是否可以在此代码中的某处使用循环?这是要求之一,我不知道在哪里使用它; /如果有什么"丑陋"关于代码随时告诉我:)
function check() {
var question1 = document.quiz.question1.value;
var question2 = document.quiz.question2.value;
var question3 = document.quiz.question3.value;
var question4 = document.quiz.question4.value;
var question5 = document.quiz.question5.value;
var question6 = document.quiz.question6.value;
var question7 = document.quiz.question7.value;
var question8 = document.quiz.question8.value;
var messages = ["You passed!", "You failed"];
var range;
var correct = 0;
var pictures = ["images/passed.gif", "images/failed.gif"];
if (question1 > 5.5) {
correct++;
}
if (question2 > 5.5) {
correct++;
}
if (question3 > 5.5) {
correct++;
}
if (question4 > 5.5) {
correct++;
}
if (question5 > 5.5) {
correct++;
}
if (question6 > 5.5) {
correct++;
}
if (question7 > 5.5) {
correct++;
}
if (question8 > 5.5) {
correct++;
}
if (correct > 5) {
range = 0;
}
if (correct < 5) {
range = 1;
}
document.getElementById("after_submit").style.visibility = "visible";
document.getElementById("message").innerHTML = messages[range];
document.getElementById("picture").src = pictures[range];
}
答案 0 :(得分:1)
你可以这样做。
function check() {
var answers = [
document.quiz.question1.value,
document.quiz.question2.value,
document.quiz.question3.value,
document.quiz.question4.value,
document.quiz.question5.value,
document.quiz.question6.value,
document.quiz.question7.value,
document.quiz.question8.value
];
var messages = ["You passed!", "You failed"];
var range;
var correct = 0;
var pictures = ["images/passed.gif", "images/failed.gif"];
for (var i = 0; i < answers.length; ++i) {
if (answers[i] > 5.5)
correct++;
}
document.getElementById("after_submit").style.visibility = "visible";
document.getElementById("message").innerHTML = messages[range];
document.getElementById("picture").src = pictures[range];
}
你甚至可以这样做(TankorSmash的建议)
function check() {
var answers = [];
for (var i = 1; i <= 8; ++i) {
answers.push(document.quiz["question" + i].value);
}
var messages = ["You passed!", "You failed"];
var range;
var correct = 0;
var pictures = ["images/passed.gif", "images/failed.gif"];
for (var i = 0; i < answers.length; ++i) {
if (answers[i] > 5.5)
correct++;
}
document.getElementById("after_submit").style.visibility = "visible";
document.getElementById("message").innerHTML = messages[range];
document.getElementById("picture").src = pictures[range];
}
答案 1 :(得分:0)
通过 mplungjan 和 aahung 解决方案的替代循环。
这个使用数组上的for-each循环使其更加干净,并使用三元运算符而不是if语句结束。
var answers = [
document.quiz.question1.value,
document.quiz.question2.value,
document.quiz.question3.value,
document.quiz.question4.value,
document.quiz.question5.value,
document.quiz.question6.value,
document.quiz.question7.value,
document.quiz.question8.value
]
// Can also loop the question values as mentioned in the previous answer
/*
var answers = [];
for (var i = 1; i <= 8; ++i) {
answers.push(document.quiz["question" + i].value);
}
*/
var messages = ["You passed!", "You failed"];
var range;
var correct = 0;
var pictures = ["images/passed.gif", "images/failed.gif"];
answers.forEach(function (value){
(value > 5.5) ? correct++ : null;
});
document.getElementById("after_submit").style.visibility = "visible";
document.getElementById("message").innerHTML = messages[range];
document.getElementById("picture").src = pictures[range];