数组中的随机项目,在 Javascript 中不重复元素

亚兹德·扎伊德

我不希望该函数重复从数组中获取的元素

function Gen() {
    let Qu = ["Yazeed", "Ammar", "Marwan", "Othman", "Sameh", "Amro", "Ibraheem"];
    let p1 = document.getElementById("demo1");
    let text = " ";
    for (let i = 0; i < 4; i++) {  //Qu.length = 7
            let p = Qu[Math.floor(Math.random() * Qu.length)];
            text+= "This is " + p  + "<br>";
    }
    p1.innerHTML = text;
}
龙魂

您可以使用splice它在显示后从数组中删除该项目。

如果您不想更改数组,则可以在更改之前创建一个副本。

let id = Math.floor(Math.random() * Qu.length);
let p = Qu[id];
Qu.splice(id, 1);
text += "This is " + p + "<br>";

工作代码:

function Gen() {
  let Qu = ["Yazeed", "Ammar", "Marwan", "Othman", "Sameh", "Amro", "Ibraheem"];
  let p1 = document.getElementById("demo1");
  let text = " ";
  for (let i = 0; i < 4; i++) { //Qu.length = 7
    let id = Math.floor(Math.random() * Qu.length);
    let p = Qu[id];
    Qu.splice(id, 1);
    text += "This is " + p + "<br>";
  }
  p1.innerHTML = text;
}
<div id="demo1"></div>
<button type="button" onclick="Gen()">Generate</button>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章