0

我似乎找不到任何解决方案。我想创建一个表单,在提交表单后收集 4 个昵称,然后使用 javascript 在 html 代码中随机显示它们

我的 4 个输入值现在在一个数组中。我必须在两个不同的团队中随机显示它们。

我正在尝试获得一个随机索引,只要它与已经分配的索引不同,以避免一个人同时在两个团队中。此代码有效,但有时,一名球员被分配到两支球队。然后,随机发生器不起作用......你有什么想法吗?

function getRandomNumber(max) {
    return Math.floor(Math.random() * Math.floor(max));
  }

function getData() {

    let joueur1     = document.querySelector("#player1").value;
    let joueur2     = document.querySelector("#player2").value;
    let joueur3     = document.querySelector("#player3").value;
    let joueur4     = document.querySelector("#player4").value;

    playerList.push(player1.value);
    playerList.push(player2.value);
    playerList.push(player3.value);
    playerList.push(player4.value);

        randomNumber1           = getRandomNumber(playerList.length);
        last1 += randomNumber1;
        random1.textContent     = playerList[randomNumber1];
        do {
          randomNumber2         = getRandomNumber(playerList.length);
        } while (randomNumber2  == last1 && last4 && last3);
        last2 += randomNumber2        
        random2.textContent     = playerList[randomNumber2];

        do {
          randomNumber3         = getRandomNumber(playerList.length);
        } while (randomNumber3  == last1 && last2 && last4);
        last3 += randomNumber3
        random3.textContent   = playerList[randomNumber3];

        do {
          randomNumber4         = getRandomNumber(playerList.length);
        }while (randomNumber4   == last1 && last2 && last3)
        random4.textContent     = playerList[randomNumber4];
        last4 += randomNumber4
}

谢谢你的帮助 !

4

1 回答 1

0

这是从数组中获取随机项的简单方法

在这里,您将项目添加到数组中

let joueur1     = document.querySelector("#player1").value;
let joueur2     = document.querySelector("#player2").value;
let joueur3     = document.querySelector("#player3").value;
let joueur4     = document.querySelector("#player4").value;
let playerList=[];
playerList.push(joueur1);
playerList.push(joueur2);
playerList.push(joueur3);
playerList.push(joueur4);

然后,这是获取随机内容的方法

let randomPlayer = playerList[Math.floor(Math.random() * playerList.length)];

Math.random()永远不会是 1。最大的索引总是比数组的长度小一

于 2021-02-12T03:46:03.613 回答