数组中的随机项,不在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请参阅我的“是”。如前所述,它将更改数组。您可以在更改之前创建数组的副本