![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2001
Сообщений: 29
|
Вопрос к программерам: каким образом можно отсортировать элементы массива случайным образом?
Попробовал в цикле следующее: text=mass[Math.floor(Math.random()*mass.length)]; Работает, но при этом некоторые элементы при выводе повторяются, что в принципе нежелательно. Есть смутное подозрение, что нужно здесь заюзать метод sort(), только вот подстановка в него math.random ничего не дает. В общем подскажите, как можно реализовать сабж. |
|
|||||
|
Регистрация: Oct 2002
Адрес: Украина, Каменец-Подольский
Сообщений: 105
|
Добренький вечерочек...
Доб...
__________________
...и пролился на него свет, и выросла тень позади него... Последний раз редактировалось Alexey (G-fi); 04.12.2002 в 00:49. |
|
|||||
|
Регистрация: Oct 2002
Адрес: Украина, Каменец-Подольский
Сообщений: 105
|
Добренький вечерочек...
тьфу, блин, радио чип в голове барахлит... Щас... Секундочку «.. раз... раз» О – нормалёк Слушай, Rotator , а может тебе проще случайно выбирать элементы из массива, а не мучать ЕГО. Гм?
__________________
...и пролился на него свет, и выросла тень позади него... Последний раз редактировалось Alexey (G-fi); 04.12.2002 в 00:52. |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
randomize = function (source) {
var result = [];
var heap = source.concat();
for (var i = 0; i<source.length; i++) {
var rnd = random(heap.length);
result.push(heap[rnd]);
heap.splice(rnd, 1);
}
return result;
};
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
b = randomize(a);
trace(a);
trace(b);
heap = source.concat(); это всего лишь способ скопировать исходный массив, чтобы не модифицировать его при сортировке... (конкат присоединяет к исходному массиву пустое место (потому что аргумент не указан) и возвращает новый массив (получается точная копия исходного =) )) |
|
|||||
|
Регистрация: Jul 2001
Сообщений: 29
|
2Nox Noctis: Круто!
как раз то, что и требовалось. Спасибо |
![]() |
Часовой пояс GMT +4, время: 12:35. |
|
|
« Предыдущая тема | Следующая тема » |
|
|