2015-09-28 3 views
-1

У меня есть массив и вам нужно выбрать три случайных значения из этого массива. Они будут помещены в новый массив, и я смогу увидеть новый массив на моем веб-сайте. Я также должен убедиться, что никакая ценность не будет выбрана дважды.Выбор случайных значений из массива и создание нового массива

Это то, что я до сих пор:

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

Я думаю, что я должен добавить идентификатор к моему HTML, так что новый массив будет отображаться на моем сайте, но я не уверен, о отдых.

+0

https://lodash.com/docs#sample – Ananth

ответ

2

Сначала сортировать он случайным образом, а затем получить первые три:

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

Так как мой E-mail() возвращает случайное значение между 0 и 1, в то время как-то ожидает, что значения, чтобы быть положительным или отрицательным, чтобы определить порядок, который мы, мы необходимо вычесть 0,5, чтобы сделать эти негативы возможными.

+0

Я буду проверять его после моей лекции. Спасибо! :) – Geir

0

Вы могли бы попробовать что-то подобное в петле

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

+0

Это действительно выглядит очень правильно и логично. Я проверю, работает ли это после моей лекции. Спасибо! :) – Geir

+0

Не могли бы вы создать id в HTML, чтобы иметь возможность использовать innerHTML, чтобы на веб-сайте отображался массив из трех случайных значений? – Geir

+0

Да, вы можете это сделать. Но я не буду делать домашнее задание: P –

Смежные вопросы