Я использовал функцию JavaScript, которая перемещает элементы массива с помощью цикла for
, который принимает аргументы, но не имеет тела (пустого тела).Комплекс для цикла с пустым телом
После того, как петля for
оценивает элементы массива, перетасовываются. Это codepen.
Вот код работы функции:
function shuffle(array) { // Shuffle an array
//
// + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
for(var j, x, i = array.length;
i;
j = parseInt(Math.random() * i),
x = array[--i], array[i] = array[j], array[j] = x){
}
return array;
}
console.log(shuffle(['Kevin', 'van', 'Zonneveld']));
Если цикл не имеет тела, я могу инициализировать все элементы вне контура for
? Как показано ниже:
var j, x, i = array.length;
var j = parseInt(Math.random() * i), x = array[--i], array[i] = array[j];
array[j] = x;
Цикл не имеет никаких утверждений в своем теле, но он * делает * все еще должен быть цикл, потому что он все еще работает для нескольких итераций. Поместите некоторые инструкции console.log() внутри цикла, чтобы зарегистрировать все переменные, и вы увидите, что происходит. – nnnnnn