
Перемешивание массива на JavaScript

Перемешивание массива на JavaScript
Несмотря на особенности сортировки массивов в JavaScript, которые нашли отражение даже в интернет-мемах, без этой самой сортировки не обойтись. Случайное перемешивание массива - тоже своеобразный вариант сортировки. Для его реализации в этих ваших интернетах обычно рекомендуют воспользоваться следующим или каким-то подобным кодом:
Code (JavaScript) : Убрать нумерацию
- var test_array=[1,2,3,4,5,6,7,8,9,10];
- test_array.sort(
- function() { return (Math.random()-0.5); }
- );
- // test_array -> перемешанный массив
Если нужно качественное перемешивание массива, то я пользуюсь следующей функцией. Помню, что-то подобное мы делали на школьных уроках информатики.
Code (JavaScript) : Убрать нумерацию
- //-------------------------------------------------
- // Функция случайной сортировки массива
- //-------------------------------------------------
- function shuffle(ar) {
- var j, tmp;
- for(var i=0; i<ar.length; i++) {
- // Случайный индекс элемента для обмена
- do {
- j=parseInt(Math.random()*ar.length);
- } while(i==j);
- // Обменять местами два элемента массива
- tmp=ar[i];
- ar[i]=ar[j];
- ar[j]=tmp;
- }