Показать сообщение отдельно
  #4 (permalink)  
Старый 23.12.2010, 19:10
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

В этом коде элемент со случайным индексом обменивается с i-тым элементом (i меняется от this.length до 0 в цикле) по такой схеме:

C = A;
A = B;
B = C;
/*
C — промежуточная переменная
Если бы просто написали A = B, B = A, то ничего бы не вышло, подумайте почему
*/


Если текущий элемент массива — тоже массив, то для него shuffle() вызывается рекурсивно (есс-но, перемешивая и его), если в первом аргументе вызова ф-ции указано true.

Т.е.:

[1,2].shuffle(); // перемешает только сам массив
[ [1,2,3], [3,4] ].shuffle(true); // перемешает все подмассивы

Последний раз редактировалось exec, 23.12.2010 в 19:53.
Ответить с цитированием