你好,我正在用 JavaScript 撰寫一個機會游戲,出于某種原因,即使給出了正確的答案,它也會顯示你輸了。我曾嘗試更改 if 條件,但還不夠精通,無法弄清楚。如果您需要更多資訊,這是我第一次在這里提問,我將提供我所知道的,如果這已經得到回答,我找不到它或沒有將其識別為答案,就像我說的那樣我還很新在一般編碼。
這是 HTML
<h3>CAN YOU GUESS MY NUMBER!!</h3>
<h4>You get two guess and my number is random every time you try. Goodluck!</h4>
<input type="text" onkeyup="guessOneCheck(this)" placeholder="enter your guess 1-10" id="guessOne" maxlength="2">
<input type="text" onkeyup="guessTwoCheck(this)" placeholder="enter your guess 1-10" id="guessTwo" maxlength="2">
<button id="submit__Guesses" onclick="bothWrong()">SUBMIT GUESSES</button>
<div id="guessAnswer"></div>
<script src="main.js"></script>
這是javascript
let guessOne = ''
let guessTwo = ''
const guessOneCheck = (g1) => {
guessOne = g1.value
console.log(g1.value)
}
const guessTwoCheck = (g2) => {
guessTwo = g2.value
console.log(g2.value)
}
const bothWrong = () =>{
let randomNum = Math.floor((Math.random() *10) 1);
console.log(randomNum)
if(guessOne !== randomNum && guessTwo !== randomNum){
document.getElementById('guessAnswer').innerHTML = 'HaHa you lose better luck next time!! My number was' ' ' randomNum;
} else if(guessOne == randomNum || guessTwo == randomNum){
document.getElementById('guessAnswer').innerHTML = 'What! No you cheated, or omg are you a psychic!!! My number was' ' ' randomNum;
}
}
uj5u.com熱心網友回復:
這里的錯誤是這一行:
if (guessOne !== randomNum && guessTwo !== randomNum) {
!==是比較值和型別的嚴格檢查。雖然值可能是正確的,但型別不會是因為您從輸入欄位中獲取 guessOne 和 guessTwo,這意味著它們是字串 - 而 randomNum 是 Number 型別。您必須將這些轉換為數字,您可以這樣做:
const guessOneCheck = (g1) => {
guessOne = g1.value
console.log(g1.value)
}
const guessTwoCheck = (g2) => {
guessTwo = g2.value
console.log(g2.value)
}
之后它應該可以正常作業
uj5u.com熱心網友回復:
你的 guessOne 和 guessTwo 是字串。如果你 console.log 它,你會看到例如"1"。您需要使用 guessOneand將字串轉換為數字 guessTwo:
if( guessOne !== randomNum && guessTwo !== randomNum){
document.getElementById('guessAnswer').innerHTML = 'HaHa you lose better luck next time!! My number was' ' ' randomNum;
} else if( guessOne == randomNum || guessTwo == randomNum){
document.getElementById('guessAnswer').innerHTML = 'What! No you cheated, or omg are you a psychic!!! My number was' ' ' randomNum;
}
uj5u.com熱心網友回復:
此錯誤有兩種解決方案。
不要使用 '===' 或 '!==' 進行比較。它也會導致型別檢查,這意味著如果輸入的數字是“3”(這是一個字串型別),并且您的比較將與數字 3 進行比較,從而在型別檢查發生時導致錯誤。而是使用
!= or ==在比較之前將輸入的字串轉換為數字,這可以通過
Number(enteredNumber)或let number = enteredNumber
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/373038.html
標籤:javascript if 语句 条件语句
上一篇:將變數附加到回圈串列中
