[英]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.