[英]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()並將結果字符串顯示為新提示。
像下面這樣的東西應該可以正常工作。 由於您的answerArray
和displayArray
的長度相同,因此您可以簡單地循環遍歷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.