我不希望该函数重复从数组中获取的元素
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] 删除。
我来说两句