Я только начал изучать Javascript.Сейчас я прохожу онлайн-курс и столкнулся с первой проблемой, которую я не понимаю.
Я хочу проверить, сколько догадок у меня осталось в игре Hangman:
const Hangman = function(word, remainingGuesses) {
this.word = word.toLowerCase().split('')
this.remainingGuesses = remainingGuesses
this.guessedLetters = []
}
Hangman.prototype.getPuzzle = function() {
let puzzle = ''
this.word.forEach((letter) => {
if (this.guessedLetters.includes(letter) || letter === ' ') {
puzzle += letter
} else {
puzzle += '*'
}
})
return puzzle
}
правильное if
утверждение в видео таково:
Hangman.prototype.makeGuess = function(guess) {
const isUnique = !this.guessedLetters.includes(guess)
const isBadGuess = !this.word.includes(guess)
if (isUnique) {
this.guessedLetters.push(guess)
}
if (isUnique && isBadGuess) {
this.remainingGuesses--
}
}
Но это ниже, как я написал оператор if
:
Hangman.prototype.makeGuess = function(guess) {
if (!this.guessedLetters.includes(guess)) {
this.guessedLetters.push(guess)
}
if (!this.guessedLetters.includes(guess) && !this.word.includes(guess)) {
this.remainingGuesses--
}
}
Остальные догадки вычисляются неправильно, если я делаю операторы if
вторым способом.Подскажите, пожалуйста, в чем разница?