рандомный выбор нескольких значений из массива
Всем привет! Как можно выбрать из массива рандомно несколько элементов? Например вот такой массив из него нужно рандомно выбирать 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"; |
Цитата:
http://javascript.ru/math.random |
ksa,
тип того ? for (var i = 0; i < 5; i++) { var a = Math.floor(Math.random() * img.length); } |
Цитата:
Если без повторений - нужно немного усложнить. |
ksa,
нужно что бы без повторений, а то получается с повторениями((( |
Цитата:
- еще один массив (ЕОМ), где значениями будут индексы исходного массива (ИМ) - выбирать (как делал ранее) случайно элемент из ЕОМ, это искомый индекс в ИМ - потом удалять этот элемент или "переставлять" его в конец ЕОМ Вот таким макаром можно избежать повторений. |
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));:write: данный пример генерит не совсем рандомную случайность. так у первых элементов шансов быть в результате больше смотрите array shuffle js |
Poznakomlus,
Спасибо за помощь всем!!!!! |
Часовой пояс GMT +3, время: 18:09. |