Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何用打印的字母替换字符?_Javascript - Fatal编程技术网

Javascript 如何用打印的字母替换字符?

Javascript 如何用打印的字母替换字符?,javascript,Javascript,我正在尝试创建一个刽子手游戏,但我找不到任何方法使键入的值替换我插入的破折号。我想用guest这个词的索引替换每一个输入的字母。有人能帮我吗 let dashesArr = []; let answerArr = []; function setNumberOfDashes() { let word = findRandomWord(); let displayDashes; for(let i = 0; i < word.length; i++) {

我正在尝试创建一个刽子手游戏,但我找不到任何方法使键入的值替换我插入的破折号。我想用guest这个词的索引替换每一个输入的字母。有人能帮我吗

let dashesArr = [];
let answerArr = [];

function setNumberOfDashes() {
    let word = findRandomWord();
    let displayDashes;
    for(let i = 0; i < word.length; i++) {
        dashesArr.push("-");
    }

    dashes.innerHTML = dashesArr.join("");
}

function getCharCode(e) {
    let keyValue = String.fromCharCode(e.keyCode);
    matchKeyToWord(keyValue);
}

function matchKeyToWord(keyValue) {
pattern =  keyValue;
    let string =  randomWordGlobal[0];
    let regexp = new RegExp(`${pattern}`, "i");
    let result = string.match(regexp);

    for(let i = 0; i < string.length; i++) {
        answerArr.push(string[i]);
    }

    if(result != null) {

        //change dashes.innerHTML at some position to the match value;

        let i = 0;
        if (i < string.length) {
          let test = dashesArr.insert(i, answerArr[i]);
               dashes.innerHTML = test;
               console.log(dashesArr);
               console.log(test);
            i++;
        }

    } else {
        getBodyParts();
    }
}

Array.prototype.insert = function ( index, item ) {
    return this.splice( index, 1, item );
};

function findIndex(string, result) {
    for(let i = 0; i < string.length; i++) {
        let index = string.indexOf(result);
        return index;
    }
}


window.addEventListener("keypress", getCharCode);
让dashesArr=[];
让answerArr=[];
函数setNumberOfDashs(){
让word=findRandomWord();
让我们展示破折号;
for(设i=0;i
我已经为您想要做的事情做了一个简单的版本。试着在你的例子中使用类似的东西。希望能有帮助

单击代码段并开始键入
“test”

var result=document.querySelector(“#result”);
var word=“测试”;
var破折号=”;
函数getDashs(){
为了(让我说说)
破折号+=“-”
result.innerHTML=破折号;
}
window.addEventListener(“按键”,功能(e){
设temp=破折号.split();
for(设i=0;i

另一个版本

let wordToGuess='baudelaire';
让hangman=document.body.querySelector(“#hangman”);
让输出=“”;
hangman.innerHTML=wordToGuess.split(“”).map(l=>'-').join(“”);
设errorCount=0;
让errorCounter=document.body.querySelector(“#errorCounter代码”);
让我们猜猜=[];
让完成=假;
window.addEventListener('keyup',event=>{
如果(完成)返回;
让key=String.fromCharCode(event.keyCode.toLowerCase();
if(wordToGuess.includes(key)和&!guessed.includes(key)){
猜。按(键);
output=wordToGuess.split(“”).map(char=>{
if(猜测。包括(char))返回char;
if(char==键)返回键;
返回“-”;
}).加入(“”);
如果(!output.includes('-')){
完成=正确;
document.body.querySelector(“#completed”).innerHTML=“Nice!”;
}
hangman.innerHTML=输出;
}否则{
errorCount++;
errorCounter.innerHTML=errorCount;
}
},假)
刽子手{
字体大小:25px;
}

错误计数:
0

如果您在代码片段中添加简化版本的代码,这将非常容易。这让我们可以看到你目前正在做什么。谢谢你的回答,我会试试的。这是第一次在这里提问,比我想象的要快。非常感谢你!我真的很高兴你能回答我,我会试试的。非常感谢你!