Ich programmiere ein einfaches Hangman-Spiel. Aus dem Wort "BANK" wird ein zufälliges Wort ausgewählt, und dann bestimmt das Wort "Länge" die Platzhalterfolge von Unterstrichen. Zum Beispiel wird 'Hund' als '_ _ _' angezeigt.Javascript: Ersetzen von Zeichen in String von keyCode-Ereignis
Ich möchte, dass die Buchstaben die Unterstriche ersetzen, wenn sie gedrückt werden, aber aus irgendeinem Grund, wenn dies passiert, wird ein zusätzlicher Unterstrich hinzugefügt. Wenn ich also 'd' auf meiner Tastatur drücke, geht der Platzhalter von '_ _ _' nach 'd _ _'. Wenn ich dann 'o' drücke, geht das Wort zu 'do _ _'. Gibt es einen Grund für diesen zusätzlichen Unterstrich?
// Game Variables
var remainingGuesses = 12;
var wins = 0;
var losses = 0;
var wordBank = ['caat', 'dog', 'tiger'];
// Select Random Word from Array
var word = wordBank[Math.floor(Math.random(2) * wordBank.length)];
var wordLength = word.length;
// Create Placeholders Based on Word Length
var placeholders = new Array(wordLength + 1).join('_ ');
// Captures Key Clicks
document.onkeyup = function(event) {
var userGuess = String.fromCharCode(event.keyCode).toLowerCase();
// Check Word with Letter
if (word.indexOf(userGuess) > -1) {
alert('correct!');
placeholders = placeholders.replace(placeholders[(word.indexOf(userGuess))], userGuess);
}
else {
alert('wrong');
remainingGuesses--;
}
console.log(placeholders);
console.log(word);
}