繁体   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