![](/img/trans.png)
[英]Prevent if statement from running while already running (Vanilla JS)
[英]Why is Vanilla JS not running my if statement?
所以我正在制作一個互換游戲。
我希望玩家輸入一個答案,我的 if 語句將根據我設置的數組檢查該答案是否正確。 它會隨機化,所以我將使用隨機化的變量來做這樣的事情:
function getRandomImage(){
var num = Math.floor(Math.random() * 10);
var img = imageArray[num];
document.getElementById("question-image").innerHTML = ('<img src="' + img + '"width=450px; height=550px; margin-left: auto; margin-right: auto;">');
console.log("random image!");
console.log(answers[num]);
const textarea = document.getElementById("answer-textarea").value;
if (document.getElementById("answer-textarea").value == answers[num].toString() && skipCounter > 3){
console.log(answers[num]);
score++;
document.getElementById("score-txt").innerHTML = ("<b>Score: </b>" + "<b>" + score + "</b>");
}
else if (document.getElementById("answer-textarea").value != answers[num].toString() && skipCounter > 3){
console.log(answers[num]);
score--;
document.getElementById("score-txt").innerHTML = ("<b>Score: </b>" + "<b>" + score + "</b>");
}
}
HTML:
<textarea class="answer-textarea" id="answer-textarea"></textarea>
當我運行它並根據我的數組輸入正確的答案時,它什么也不做。 1
大批:
answers = new Array();
answers[0] = "Turbine Interchange";
answers[1] = "Complex Roundabout";
answers[2] = "Cloverleaf Interchange";
answers[3] = "High Five";
answers[4] = "Mixing Bowl Interchange";
answers[5] = "Light Horse Interchange";
answers[6] = "T Interchange";
answers[7] = "Trumpet Interchange";
answers[8] = "Vaanplein Junction";
answers[9] = "Ya'an East Road Interchange";
我的代碼有問題嗎?
編輯 1:我現在更新了我的代碼,我正在檢查我的 texrarea 值、答案、跳過計數器和當前分數。
console.log(textarea + "\n" + answers[num] + "\n" + skipCounter + "\n" + score);
編輯 2:是的 if 函數甚至不起作用。 我在 ifs 的底部添加了一條新語句:
else {
console.log("Did nothing!")
}
這一切都只是說“什么也沒做”。
問題是您實際上並沒有將答案添加到數組中。
您需要使用數組push
方法。
answers = new Array();
answers.push("Turbine Interchange");
answers.push("Complex Roundabout");
answers.push("Cloverleaf Interchange");
// etc
一旦您進行了更改,它將按預期工作。
我推薦的另一種方法是在創建數組時對其進行初始化。
var answers = [
“Answer one”,
“Answer two”,
“Answer three”,
// etc
];
我已經修復了程序。
供將來參考和其他人參考,這就是我的做法。
我將num
var 設為全局
變量編號;
getRandImg(){//bla bla bla}
分開 get randImg() 和 checkAns()
做了一個Boolean來檢查是否是第一次laoding,所以我沒有像@Barmar所說的那樣檢查下一個答案。
在用戶已經回答之后,您似乎正在隨機化問題。 這是它應該做的嗎? – 巴爾馬爾
感謝您對 stackoverflow 人員的所有幫助,我還為該項目制作了一個 repo。 如果你想看完整的代碼。 https://github.com/elfryt/whats-the-interchange
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.