数组中的随机项,不在Javascript中重复元素
我不希望函数重复从数组中提取的元素数组中的随机项,不在Javascript中重复元素,javascript,arrays,loops,random,Javascript,Arrays,Loops,Random,我不希望函数重复从数组中提取的元素 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
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;
}
函数Gen(){
让Qu=[“亚泽德”、“阿马尔”、“马尔旺”、“奥斯曼”、“萨米”、“阿姆罗”、“伊布拉希姆”];
设p1=document.getElementById(“demo1”);
让文本=”;
对于(设i=0;i<4;i++){//Qu.length=7
设p=Qu[Math.floor(Math.random()*Qu.length)];
text+=“这是”+p+“
”;
}
p1.innerHTML=文本;
}
这是一个基于。它与temp变量交换,并从长度递减
let names=[“亚泽德”、“阿马尔”、“马尔旺”、“奥特曼”、“萨米”、“阿姆罗”、“伊布拉希姆”];
函数洗牌(数组){
让数量=数组长度,温度,i;
while(数量){
i=数学地板(数学随机()*数量--);
温度=阵列[数量];
数组[数量]=数组[i];
数组[i]=温度;
}
返回数组;
}
document.querySelector('output').textContent=shuffle(名称)代码>
您可以使用splice
在显示项目后将其从阵列中删除
如果不想更改数组,则可以在更改之前创建一个副本
let id = Math.floor(Math.random() * Qu.length);
let p = Qu[id];
Qu.splice(id, 1);
text += "This is " + p + "<br>";
let id=Math.floor(Math.random()*Qu.length);
设p=Qu[id];
q.接头(id,1);
text+=“这是”+p+“
”;
工作代码:
函数Gen(){
让Qu=[“亚泽德”、“阿马尔”、“马尔旺”、“奥斯曼”、“萨米”、“阿姆罗”、“伊布拉希姆”];
设p1=document.getElementById(“demo1”);
让文本=”;
对于(设i=0;i<4;i++){//Qu.length=7
设id=Math.floor(Math.random()*Qu.length);
设p=Qu[id];
q.接头(id,1);
text+=“这是”+p+“
”;
}
p1.innerHTML=文本;
}
生成
我希望我能有所帮助
function Gen() {
let Qu = ["Yazeed", "Ammar", "Marwan", "Othman", "Sameh", "Amro", "Ibraheem"];
var QuNew = Qu.sort(() => Math.random() - 0.5); // <- Make new random array
let p1 = document.getElementById("demo1");
let text = " ";
for (let i = 0; i < 4; i++) { //Qu.length = 7
text+= "This is " + QuNew[i] + "<br>";
}
p1.innerHTML = text;
}
函数Gen(){
让Qu=[“亚泽德”、“阿马尔”、“马尔旺”、“奥斯曼”、“萨米”、“阿姆罗”、“伊布拉希姆”];
var QuNew=Qu.sort(()=>Math.random()-0.5);//shuffle和popOr shuffle和shift()@YazeedZaid请参阅我的“是”。如前所述,它将更改数组。您可以在更改之前创建数组的副本