我有一个字符串存储为变量randWord。
我使用循环隐藏了一系列空格的randWord。
var tempSpace = '';
for (var i = 0; i < randWordLngth; i++) {
tempSpace = tempSpace + ' ___ ';
}
用户试图猜出隐藏的单词。猜测存储在名为userInput的字符串变量中。
我创建了这个函数,用正确的用户猜测字母替换空白点。
String.prototype.replaceAt = function(index, replacement) {
return this.substr(0, index) + replacement+ this.substr(index + replacement.length);
}
我需要调用该函数并在正确的索引处打印正确猜到的单词,但将未打开的单词留空。我试图用另一个循环建立这个但是我的语法错了。
wordPosition = tempSpace.replaceAt(positions, userInput);
if (wordPosition != ' ___ ') {
for (var i = 0; i < randWordLngth; i++) {
tempSpace = tempSpace + ' ___ ';
$('#wordBox').html(wordPosition)
}
}
为了发现用户猜到的字符是什么,我创建了一个函数
function getAllIndexes(word, val) {
positions = [];
for(i = 0; i < word.length; i++) {
if (word[i] === val) {
positions.push(i);
console.log("the position of the letter(s) are " + positions);
}
}
}
我称之为:
getAllIndexes(randWord, userInput);
您可以在图片中看到失败的示例。隐藏的单词是gallery,用户(我)猜对了'l'。它应该在第2和第3个索引处打印两次字符l。