簡體   English   中英

從數組中選擇隨機值並創建新數組

[英]Picking random values from array and creating new array

我有一個數組,需要從該數組中選擇三個隨機值。 這些將被放入一個新的陣列中,我將能夠在我的網站上看到該新陣列。 我還必須確保沒有值被兩次選擇。

這是我到目前為止的內容:

 var student = ["Hans","Ole","Nils","Olav","Per","Knut","Line","Pia"];
 var velg = student[Math.floor(Math.random() * student.length)];

我想我應該在HTML中添加一個id,這樣新的數組就會顯示在我的網站上,但是我不確定其余的內容。

首先將其隨機排序,然后得到前三個:

student
   .sort(function(){
       return Math.random() - 0.5;
     })
   .slice(0,3)

由於Math.random()返回0到1之間的隨機值,而sort期望值是正數或負數來確定我們的階數,因此我們需要減去0.5以使這些負數成為可能。

您可以循環嘗試這樣的事情

var students = ["Hans","Ole","Nils","Olav","Per","Knut","Line","Pia"];
var randomStudents = [];
for(var i = 0; i < 3; i++) {
    var velg = student[Math.floor(Math.random() * students.length)];
    randomStudents.push(velg);
}

請注意,這可以將重復的學生添加到數組中。 您應該檢查學生是否已經在數組中,然后重試。

關鍵字是遞歸。

https://www.codecademy.com/courses/javascript-lesson-205/0/1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM