Как заменить 3 случайных символа изображением

#javascript

#javascript

Вопрос:

Я пытаюсь создать программу, которая представляет собой своего рода игру в угадывание слов. Я должен заменить 3 случайных символа из строки изображением. Прямо сейчас моя программа очень проста. Он только записывает случайное слово из массива в документ, но не заменяет никаких символов. Я пробовал использовать разные методы (replace(), join(), split()), но, похоже, я слишком усложняю это. Не могли бы вы мне помочь?

это то, что я пробовал

 paraules = [
    "taronja", "fresa",
    "magrana", "pinya",
    "mango", "sindria",
    "mandarina", "llimona",
    "papaia", "pressec"
];
var substitut = "_";

for (var i = 0; i < paraules.length; i  ) {
    var paraulesMod = paraules[i].split('');
    var substitutMod = substitut.split('');
}

for (var i = 0; i < 3; i  ) {
    var pos1 = Math.round(Math.random() * (paraules.length - 1));
    var pos2 = Math.round(Math.random() * (substitut.length - 1));
    paraulesMod[pos1] = substitutMod[pos2];
}

document.write(paraulesMod.join(""));

  

это то, что работает

 paraules = [
    "taronja", "fresa",
    "mangrana", "pinya",
    "mango", "sindria",
    "mandarina", "llimona",
    "papaia", "pressec"
];

var paraula = paraules[Math.floor(Math.random() * paraules.length)];
document.write("<h1>"   paraula   "</h1>");

function comprovar() {
    if (document.getElementById("endevina").value == paraula) {
        alert("L'has endevinat!")
    } else {
        alert("Torna-ho a provar")
    }
}
  

index.html

 <!DOCTYPE html>
<html>
    <head>
        <script src="main.js"></script>
    </head>
    <body>
        <input type="text" id="endevina" name="endevina">
        <input type="button" id="comprova" value="comprovar" onclick="comprovar()">
    </body>
</html>

  

Комментарии:

1. Я обновил код

Ответ №1:

сначала вы должны определить paraulesMod и substitutMod во внешнем из, а затем в вашем document.write(paraulesMod.join(«»)); должен иметь html-тег

Ответ №2:

Это работает:

 paraules = [
    "taronja", "fresa",
    "magrana", "pinya",
    "mango", "sindria",
    "mandarina", "llimona",
    "papaia", "pressec"
];

let randWordIndex = Math.floor(Math.random() * paraules.length);
let selectedWord = paraules[randWordIndex];
let selectedStringArray = [...selectedWord];
let indexToReplace = [];

for(let i = 0; i < 3; i  ) {
   createLetterIndexes();
}

indexToReplace.forEach(index => {
  selectedStringArray[index] = "_";
})

document.querySelector("h1").innerText = selectedStringArray.join("");

function createLetterIndexes() {
  let min = 0
  let max = selectedStringArray.length - 1;
  let index = Math.floor(Math.random() * max)   min;
  if (!indexToReplace.includes(index)) indexToReplace.push(index);
  else createLetterIndexes();
}

function comprovar() {
  let input = document.getElementById("endevina");
    if ( input.value == selectedWord) {
        alert("L'has endevinat!")
        input.value = "";
    } else {
        alert("Torna-ho a provar")
    }
    
}