я пытаюсь перемешать массив картинок, чтобы они в случайном порядке выстраивались, но получается какая то дрянь. лезу в примеры с курсов, а там все на эльфийском:
function arrayShuffle(a){
if(a.length == 1) return this;
for(var j, x, i = a.length; i; j = Math.floor(Math.random() * i), x = a[--i], a[i] = a[j], a[j] = x);
return a;
}
можете подсказать что к чему или еще какие нибудь примеры привести или хоть что то? (
JavaScript
Можете привести примеры функции перемешивания массива в javascript? -_-
Могу пояснить за эту функцию
function arrayShuffle(a){
Принимает на вход массив a
for(var j, x, i = a.length; i; j = Math.floor(Math.random() * i), x = a[--i], a[i] = a[j], a[j] = x);
Вот тут отбитый хрен какой-то писал, но поясняю по частям.
1.Берутся переменные j, x и i, i в данном случае выступает итератором и ему сразу присваивается значение длины массива.
2.Дальше j присваивается случайное значение от 0 до i.
3.Меняют местами значения a[i-1] и a[j] с помощью переменной x, и вместе с этим снижают значение i на 1
Когда i становится 0, происходит выход из цикла
return a;}
Ну и возвращаешь уже перемешанный массив а
Все просто
function arrayShuffle(a){
Принимает на вход массив a
for(var j, x, i = a.length; i; j = Math.floor(Math.random() * i), x = a[--i], a[i] = a[j], a[j] = x);
Вот тут отбитый хрен какой-то писал, но поясняю по частям.
1.Берутся переменные j, x и i, i в данном случае выступает итератором и ему сразу присваивается значение длины массива.
2.Дальше j присваивается случайное значение от 0 до i.
3.Меняют местами значения a[i-1] и a[j] с помощью переменной x, и вместе с этим снижают значение i на 1
Когда i становится 0, происходит выход из цикла
return a;}
Ну и возвращаешь уже перемешанный массив а
Все просто
Берёшь последовательно каждый элемент массива.
Генерируешь случайное число в пределах длины массива.
Меняешь местами два элемента.
Генерируешь случайное число в пределах длины массива.
Меняешь местами два элемента.
Array.prototype.shuffle = function( b ){
var i = this.length, j, t;
while( i ) {
j = Math.floor( ( i-- ) * Math.random() );
t = b && typeof this[i].shuffle!=='undefined' ? this[i].shuffle() : this[i];
this[i] = this[j];
this[j] = t;
}
return this;
};
Примеры использования: // Перемешивание одномерного массива
var a = new Array(1,2,3,4,5);
alert( a.shuffle() );
1) http://webhamster.ru/mytetrashare/index/mtb0/4022
2) тут несколько примеров перетасовки массивов выбирай - +читай комменты
http://javascript.ru/php/shuffle
var i = this.length, j, t;
while( i ) {
j = Math.floor( ( i-- ) * Math.random() );
t = b && typeof this[i].shuffle!=='undefined' ? this[i].shuffle() : this[i];
this[i] = this[j];
this[j] = t;
}
return this;
};
Примеры использования: // Перемешивание одномерного массива
var a = new Array(1,2,3,4,5);
alert( a.shuffle() );
1) http://webhamster.ru/mytetrashare/index/mtb0/4022
2) тут несколько примеров перетасовки массивов выбирай - +читай комменты
http://javascript.ru/php/shuffle
Намутили тут шляпы какой-то. [1,2,3,4,5,"строка"].sort(()=>Math.floor(Math.random() * 2))
Похожие вопросы
- Нужна помощь в массиве JavaScript
- Объясните мне, пожалуйста, что это за аргументы функции в javascript ( function(arg1, arg2, ..) ).
- Вопрос по JavaScript, обращение к функции, которая находится в функции...
- как проверить в двух больших массивах всё на наличие того же самого в другом. javascript
- почему в javascript в функцию можно передавать параметры без типа?
- Почему split не работает и правильно ли написана функция? javascript. Помогите, пожалуйста
- Задачка на мышление. JavaScript. Вращение массива
- А это правда, что в Javascript НЕ СУЩЕСТВУЕТ ассоциативных массивов? Вместо них объекты.
- Как составить синтаксис JavaScript для автозаполнения формы * (к примеру, анкеты) нажатием на кнопку ** ?
- Помогите с JavaScript (локальные/глобальные переменные/функции)
и почему в цикле нет что то вроде i<0 а просто i?
извините за кучу вопросов, просто некому разжевать это все -_- среди друзей ни одного программиста