我在完成任务时遇到了障碍 . 如何将值插入给定的索引?
例如,我正在制作一个刽子手游戏 . 如果单词是“harry”,并且玩家猜测字母“r”,我如何将我的下划线数组变为“_ _ r r _”?
我在下面从单独的js文件中获取一个单词,创建一个下划线数组(返回单词的每个字母一个),然后,当用户猜出一个字母时,它会找到该字母出现的索引或索引 . 信件 .
**我已经更新了以下代码 . 朝向结尾的for循环使用我的下划线数组(wordToGuess [])和用户输入中的拼接 . 这就是我需要它,但它也把最后一个猜测的字母放在前面 . 例如,如果单词是“粗体”并且用户猜到的最后一个字母是“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);
}
4 回答
要修改数组,你想要
Array.prototype.splice()
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
来自文档:
看起来你想要的行为就在这里的第三个例子中,他们将'drum'替换为'trumpet' .
尝试这样的事情:
现在你的阵列变成1,
编辑,更新
尝试
做点什么
被无耻地从here.偷走