Javascript 替换数组中多个索引处的内容

Javascript 替换数组中多个索引处的内容,javascript,arrays,function,array-splice,Javascript,Arrays,Function,Array Splice,我正在尝试用Javascript制作一个刽子手游戏,用户输入一个单词让另一个人猜。单词被发送到一个函数(make下划线),并被做成一个下划线数组,然后返回给播放器,提示输入他们想要猜测的字母。字母和单词被发送到一个函数,该函数查找字母在单词中的位置(getPosition),并将位置发送到另一个函数。函数(insertLetters)用于在给定位置用字母替换下划线。除了函数不替换数组中的任何内容外,所有这些都可以工作。如果第一个字母在单词中只出现一次,则它仅替换第一个字母。如果您有任何解决此问题

我正在尝试用Javascript制作一个刽子手游戏,用户输入一个单词让另一个人猜。单词被发送到一个函数(make下划线),并被做成一个下划线数组,然后返回给播放器,提示输入他们想要猜测的字母。字母和单词被发送到一个函数,该函数查找字母在单词中的位置(getPosition),并将位置发送到另一个函数。函数(insertLetters)用于在给定位置用字母替换下划线。除了函数不替换数组中的任何内容外,所有这些都可以工作。如果第一个字母在单词中只出现一次,则它仅替换第一个字母。如果您有任何解决此问题的建议,我们将不胜感激。我还想知道是否有办法防止用户在单词中输入数字或作为猜测


刽子手
函数(word){
for(i=0;i0;i--){
字母=提示(“[”+下划线+”]\n猜测一个字母。您还有“+i+”猜测”);
位置(字、字母);
}

开始深入研究的一种方法是使用调试器跟踪应用程序的流。有一个调试器,可以让您逐行查看变量的当前值

      function insertLetters(underlines, positions, bokstav){
        underlines[positions] = letter;
        return underlines;
      }
通过查看插入字母,
位置
应该是一个整数索引值数组,但它直接用作整数。也许可以尝试迭代
位置中的值
,并使用这些值索引
下划线

      function insertLetters(underlines, positions, letter){
        for (let i = 0; i < positions.length; i++) {
          const pos = positions[i];
          underlines[pos] = letter;
        }
      }
函数插入字母(下划线、位置、字母){
for(设i=0;i
我认为,在
getPositions
中,您可以做的最后一件事是用
positions=[]清除positions数组

总的来说,您的代码看起来相当实用。注意尝试将变量直接传递给函数,而不是依赖全局变量