【发布时间】:2014-12-05 19:11:01
【问题描述】:
我在完成一项任务时遇到了障碍。如何将值插入给定的索引或索引?
例如,我正在开发一个刽子手游戏。如果单词是“harry”,并且玩家猜到了字母“r”,我如何将我的下划线数组转换为“_ _ r r _”?
我下面的内容从一个单独的 js 文件中获取一个单词,创建一个下划线数组(返回单词的每个字母一个),然后,当用户猜测一个字母时,它会找到一个或多个下划线的索引该字母的出现次数。
**我已经更新了下面的代码。最后的 for 循环是我的下划线数组(wordToGuess[])和用户输入的拼接。这可以满足我的需要,但它也将最后猜到的字母放在前面。例如,如果单词是“bold”并且用户猜到的最后一个字母是“l”,那么 wordToGuess 数组将是 lbold。这里有人知道这是为什么吗?我敢肯定,我忽略了一些简单的事情,但它让我发疯了。
Javascript
var word;
$(document).ready(function () {
SetGameBoard();
});
//When guess button is clicked
$('#BtnGuess').click(function () {
CheckGuess();
});
function GetPhrase() {
word = ReturnWord();
alert(word);
}
function SetGameBoard() {
GetPhrase();
wordToGuess = new Array(word.length);
// Place underscore for each letter in the answer word in the DivWord div
for (var i = 0; i < word.length; i++){
wordToGuess[i] = "_ ";
}
$('#DivWord').html(wordToGuess);
}
function CheckGuess() {
var pos = 0;
var posArray = [];
var guessLetter = $('#tbGuessLetter').val();
while ((pos = word.indexOf(guessLetter, pos)) > -1) {
posArray.push(++pos);
}
if (posArray.length == 0) {
alert(guessLetter + " is not in the word.");
}
//Splice in correct letters. Not working 100%
for(i=0; i < wordToGuess.length; i++){
wordToGuess.splice(posArray[i], 1, guessLetter);
}
$('#DivWord').html(wordToGuess);
alert(posArray);
alert(guessLetter);
}
【问题讨论】:
-
“ReturnWord()”设置在哪里?
-
@Growler 它位于一个单独的文件中,它只是一个单词数组和一个“随机”选择一个单词并返回它的函数。
-
@exeleon "如果单词是"harry",并且玩家猜到了字母"r",我如何将我的下划线数组变成" i> _ r r "?"" 如果一个 (one)
r被猜对了,两个r's 被显示出来在蒙面词?
标签: javascript jquery arrays