Я некоторое время находился под впечатлением, что цикл for
может существовать только в следующем формате:
for (INITIALIZER; STOP CONDITION; INC(DEC)REMENTER)
{
CODE
}
Это, однако, наиболее определенно не так; взгляните на эту реализацию JavaScript Fisher-Yates Shuffle:
shuffle = function(o)
{
for (var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
};
Этот маленький фрагмент полностью ударяет меня по голове; как в мире так много происходит внутри простого объявления цикла? Я имею в виду... он даже не открывает скобу! Вся магия выполняется прямо внутри оператора for
. Было бы замечательно, если бы кто-то мог дать относительно подробное объяснение тому, как в мире этот вуду делает то, что он делает. Очень ценится заранее.