繁体   English   中英

子手游戏。 2个数组。 一个需要相应地更新到另一个

[英]Hangman game. 2 arrays. One need to update accordingly to the other one

我正在构建一个javascript hangman游戏,而我在这个问题上有些困惑。

假设要猜的单词是“狗”。 我创建了这个单词的数组: ["d", "o", "g"]; 对于所选单词中的每个字母,浏览器中的提示(段落的in)都显示有“-”。 在这种情况下,提示将显示---

如果用户是猜测正确的信我想显示例如提示d--如果字母d被猜中。

我已经根据提示创建了一个数组,并使用dog示例,该数组如下所示: ["-", "-", "-"];

我坚持的是如何在正确的位置用相应的字母更新第二个数组。 该数组应类似于: ["d", "-", "-"]; 然后我可以array.join()并将结果字符串显示为新提示。

像下面这样的东西应该可以正常工作。 由于您的answerArraydisplayArray的长度相同,因此您可以简单地循环遍历answerArray ,检查是否有任何匹配项,并将所述匹配项推入displayArray的适当位置。

var answerArray = ["d", "o", "g"],
    displayArray = ["-", "-", "-"],
    length = answerArray.length,
    i;

var currentGuess = prompt("Please enter a letter: ");

for (i = 0; i < length; i++) {

    if(currentGuess === answerArray[i]) {

        displayArray[i] = currentGuess;

    }

}

您有两个数组:

var word = ["d", "o", "g"];
var guessedWord = ["-", "-", "-"];

字母正确时,您可以执行以下操作:

var idx = word.indexOf("d");
guessedWord[idx] = word[idx];

数组的长度应相同,因此您可以天真地分配值。

真正的基本例子。

http://jsbin.com/qoteqakona/1/edit?js,控制台

var word = 'hello'.split('');

var blanks = word.map(function (e) {
  return '-';
});

function guess(l) {
  word.forEach(function (e, i) {
    if (e === l) blanks[i] = word[i];
  });

  return blanks;
}

console.log(guess('l'));
console.log(guess('h'));
console.log(guess('i'));

.forEach()回调中, e是当前元素的值,而i是当前索引的值。

额外文档:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM