Javascript 刽子手 : trouble with replacing blanks with correct letters

标签 javascript jquery

所以我在玩这个游戏的特定部分时遇到了问题。这些是我的初始变量:

var words = ["sugar","banana","hulk"];
var guessLeft = 12;
var wrongGuess = [];
var hiddenWord = [];
var hiddenWordText = document.getElementById("hiddenword-text");
var chosenWord = words[Math.floor(Math.random() * words.length)];

到目前为止,它从我的数组中正确地选择了一个随机单词,并将它们替换为与所选单词长度相同的下划线。这是我的做法:

for (i = 0; i < chosenWord.length; i++) {
    hiddenWord.push("_");
    hiddenWordText.textContent = hiddenWord.join(" ");
}

现在,我遇到的问题是它何时确定我的猜测是否与字母匹配,以及如何用猜测的字母替换正确的下划线索引。

这是我目前所拥有的,我不确定我是否在正确的轨道上。有没有人有任何提示,或者您能指导我正确的方向吗?

document.onkeyup = function(event) {
    var userGuess = event.key;

    if (chosenWord.indexOf(userGuess) >= 0){
        for (var i = 0; i < wordLength; i++){
            if (chosenWord[i] == userGuess){
                hiddenWord[i] == userGuess;

                hiddenWordText.textContent = hiddenWord[i] + hiddenWord;
            }
        }
    }
    else {
        guessLeft = guessLeft - 1;
    }
}

最佳答案

你的代码有几个错误

使用=代替==进行变量赋值

在循环后将 hiddenWordTexttextContext 替换为 hiddenWord.join(""),其中已显示正确猜测的单词。以前,您会在每次循环迭代时不断替换 textContext,这将忽略在先前迭代中找到的匹配项

if (chosenWord.indexOf(userGuess) >= 0){
    for (var i = 0; i < chosenWord.length; i++){
        if (chosenWord[i] == userGuess){
            hiddenWord[i] = userGuess;
        }
    }
    hiddenWordText.textContent = hiddenWord.join(" ");
}

关于Javascript 刽子手 : trouble with replacing blanks with correct letters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53623990/

相关文章:

javascript - 如何将数值传递给 jQuery 的 .css()?

javascript - jQuery 函数不能与另一个函数一起使用

javascript - Node.js 重定向到 ip :port based on the used domain name

jquery - 我想点击一个正方形来显示一条消息,显示每个正方形内的数字与 jquery

php - Ajax 响应冲突的 css

javascript - 如何区分通过鼠标滚动和在 JavaScript 中以编程方式滚动?

javascript - JS 将数组的值添加到对象

javascript - 如何使用 jQuery 定位同一行中的表格单元格?

javascript - 错误通知不起作用

javascript - 如何突出显示所选选项卡?