我需要將 var "left" 減 1 并且只減一次,而不是讓它通過一個回圈并在條件為真時減量。但是條件只有在回圈中才有效。我該怎么做?
let key = e.key.toLowerCase()
for (i = 0; i < word.length; i ) {
if (word[i] == key) {
if (guessed[i] != key) {
console.log(e.key)
guessed[i] = key
} else {
console.log('This is where i want left--')
}
}
}
left--; //Need this to decrement only once
uj5u.com熱心網友回復:
您可以使用此方法:
key = e.key.toLowerCase()
Let decrement=false;
for (i = 0; i < word.length; i ) {
if(decrement==false)
if (word[i] == key) { if (guessed[i] != key) { console.log(e.key) guessed[i] = key } else { left--;
decrement=true;} } }
或者您可以使用 break 從回圈中跳出
uj5u.com熱心網友回復:
由于更多的條件,我決定這樣做。謝謝您的回答!作為一個標準,給自己帶來了一些額外的問題。就像回圈中的第一個 if{}else{} 是同時執行 if 和 else 而不是一個或另一個......所以令人困惑。
let correct = 0;
let key = e.key.toLowerCase()
for (i = 0; i < word.length; i ) {
if (word[i] == key) {
if (guessed[i] != key) {
guessed[i] = key
correct = 1;
console.log(e.key)
} else {
console.log('Guessing same key')
correct = 1;
}
}
}
if (correct != 1) {
left--;
console.log('Decrementing')
tries.innerHTML = `<span>${key} </span>`
correct = 0
}
uj5u.com熱心網友回復:
將是否left
已遞減存盤在變數中:
let key = e.key.toLowerCase()
let decrementedLeft = false;
for (i = 0; i < word.length; i ) {
if (word[i] == key) {
if (guessed[i] != key) {
console.log(e.key)
guessed[i] = key
} else {
if(!decrementedLeft){
decrementedLeft = true;
left--;
}
}
}
}
if(!decrementedLeft){
left--;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/472090.html
標籤:javascript 循环 变量 增量 递减