Показать сообщение отдельно
Старый 04.12.2002, 02:04
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 4  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: 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();
это всего лишь способ скопировать исходный массив, чтобы не модифицировать его при сортировке...
(конкат присоединяет к исходному массиву пустое место (потому что аргумент не указан) и возвращает новый массив (получается точная копия исходного =) ))