如何在循环中插入随机函数?

nin*_*nna 5 javascript for-loop function

所以...这有点难以解释,但我想用 Javascript 打印这个结果:

在此输入图像描述

  • “*”字符必须是随机的。因此,每次加载页面时,我的循环中都会随机暴露一个新角色。是否可以?有人知道如何到达那里吗?

我设法生成一个具有不同字符的随机函数,但它们在所有行中打印并且始终在同一位置。我必须做什么才能确保随机字符仅打印一次并且每次都打印在随机行中?

我的代码:

const characters = '&%$*';

function generateRandomCode() {
  let result = ""
  let charactersLength = characters.length;
  for (let i = 0; i < 1; i++) {
    result += characters.charAt(Math.floor(Math.random() * charactersLength));
  }
  return result
}


let string = "";
for (let i = 1; i <= 5; i++) {
  for (j = 1; j <= 5; j++) {
    string += "#";
  }
  string += generateRandomCode();
  generateRandomCode();
  string += "<br>";
}

document.write(string);
Run Code Online (Sandbox Code Playgroud)

这是我的代码打印的内容:

在此输入图像描述

kir*_*nvj 4

尝试如下所示的方法。我在循环外创建了 3 个随机整数,一个用于字符,一个用于行,一个用于插入字符的位置。在循环内使用这些整数

const characters = '&%$*';

let string = "";
let rand = generateRandomCode(); // generate an array of 3 random numbers.

console.log(rand);

for (let i = 0; i < 5; i++) {
  for (j = 0; j < 5; j++) {
    string += rand[1] === i && rand[2] === j ? characters[rand[0]] : "#";
  }

  string += "<br>";
}

function randomIntFromInterval(min, max) { // min and max included 
  return Math.floor(Math.random() * (max - min + 1) + min)
}

function generateRandomCode() {
  return [randomIntFromInterval(0, 3), randomIntFromInterval(0, 4), randomIntFromInterval(0, 4)]
}

document.write(string);
Run Code Online (Sandbox Code Playgroud)