Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.10.2016, 13:53
Интересующийся
Отправить личное сообщение для Alekseyideas Посмотреть профиль Найти все сообщения от Alekseyideas
 
Регистрация: 01.07.2016
Сообщений: 20

рандомный выбор нескольких значений из массива
Всем привет! Как можно выбрать из массива рандомно несколько элементов? Например вот такой массив из него нужно рандомно выбирать 5 изображений. Спасибо

var imgRand;
imgRand = [];
imgRand[0] = "img/1.png";
imgRand[1] = "img/2.png";
imgRand[2] = "img/3.png";
imgRand[3] = "img/4.png";
imgRand[4] = "img/5.png";
imgRand[5] = "img/6.png";
imgRand[6] = "img/7.png";
imgRand[7] = "img/8.png";
imgRand[8] = "img/9.png";
imgRand[9] = "img/10.png";
imgRand[10] = "img/11.png";
Ответить с цитированием
  #2 (permalink)  
Старый 21.10.2016, 13:58
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,227

Сообщение от Alekseyideas
Как можно выбрать из массива рандомно несколько элементов?
В цикле использовать метод
http://javascript.ru/math.random
Ответить с цитированием
  #3 (permalink)  
Старый 21.10.2016, 14:03
Интересующийся
Отправить личное сообщение для Alekseyideas Посмотреть профиль Найти все сообщения от Alekseyideas
 
Регистрация: 01.07.2016
Сообщений: 20

ksa,
тип того ?
for (var i = 0; i < 5; i++) {
  var a = Math.floor(Math.random() * img.length);
}
Ответить с цитированием
  #4 (permalink)  
Старый 21.10.2016, 14:15
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,227

Сообщение от Alekseyideas
тип того ?
Да, если повторения не страшны...

Если без повторений - нужно немного усложнить.
Ответить с цитированием
  #5 (permalink)  
Старый 21.10.2016, 14:26
Интересующийся
Отправить личное сообщение для Alekseyideas Посмотреть профиль Найти все сообщения от Alekseyideas
 
Регистрация: 01.07.2016
Сообщений: 20

ksa,
нужно что бы без повторений, а то получается с повторениями(((
Ответить с цитированием
  #6 (permalink)  
Старый 21.10.2016, 14:53
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,227

Сообщение от Alekseyideas
нужно что бы без повторений
Тогда нужно делать:
- еще один массив (ЕОМ), где значениями будут индексы исходного массива (ИМ)
- выбирать (как делал ранее) случайно элемент из ЕОМ, это искомый индекс в ИМ
- потом удалять этот элемент или "переставлять" его в конец ЕОМ
Вот таким макаром можно избежать повторений.
Ответить с цитированием
  #7 (permalink)  
Старый 21.10.2016, 15:07
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

var images = [
    "img/1.png",
    "img/2.png",
    "img/3.png",
    "img/4.png",
    "img/5.png",
    "img/6.png",
    "img/7.png",
    "img/8.png",
    "img/9.png",
    "img/10.png",
    "img/11.png"
];
function randomArray(arr, len) {
    arr.sort(function () {
        return Math.random() > 0.5
    });
    arr.length = len;
    return arr;
}
alert(randomArray(images, 5));
alert(randomArray(images, 3));

данный пример генерит не совсем рандомную случайность.
так у первых элементов шансов быть в результате больше
смотрите array shuffle js

Последний раз редактировалось Vlasenko Fedor, 21.10.2016 в 15:18.
Ответить с цитированием
  #8 (permalink)  
Старый 21.10.2016, 15:18
Интересующийся
Отправить личное сообщение для Alekseyideas Посмотреть профиль Найти все сообщения от Alekseyideas
 
Регистрация: 01.07.2016
Сообщений: 20

Poznakomlus,
Спасибо за помощь всем!!!!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
получение значений из массива и вставка нового элемента malefikus13 Общие вопросы Javascript 7 06.10.2015 11:56
Ввод диапазона значений массива с клавиатуры Воскобоенко Общие вопросы Javascript 11 06.06.2015 22:34
Select выбор нескольких пунктов DDSSDD Элементы интерфейса 4 08.09.2014 17:18
Отправка по Ajax массива значений поля input hrundel jQuery 10 25.04.2014 22:13
Выбор из массива трех элементов sonntagausgang Общие вопросы Javascript 2 26.05.2013 02:59