2015-10-05 3 views
0

У меня есть массив элементов списка:Выдвижные элементы случайным образом из массива 3 по 3

var listArray = []; 

$("ul li").each(function(){ 
    listArray.push($(this)); 
}); 

var item = listArray[Math.floor(Math.random()*listArray.length)]; 

item.css({ 
    "transform":"scale(1)" 
}); 

и я перетасовал массив, как это упоминалось в ответах, но до сих пор я не смог вытащить элементы из него один по одному с интервалом

если у вас есть идея, как это сделать, пожалуйста, скажите мне.

DEMO: https://jsfiddle.net/rnfrxL1b/3/

+1

Нет глупых вопросов, только глупые ответы. Добро пожаловать в StackOverflow –

+0

Принимая 4 случайных элемента, вы просто берете один случайный элемент четыре раза. – Nit

+0

@ Не используйте, если вы не хотите принимать один конкретный элемент более одного раза. –

ответ

2

Вы можете первым перетасовать массив, а затем вытащить значения из массива перемешиваются либо по одному или 4 на 4. См метод воспроизведения в случайном порядке: link

+0

ok я перепутал массив, но проблема в том, что я не знаю, как вытаскивать элементы из него 4 на 4 в промежутках, я пробовал его с петлями, но без успеха –

+0

@FrankeyWakey Пробовал ли вы массив? – imnancysun

0

Я думаю, что это то, что вы хотите: How to randomize (shuffle) a JavaScript array?

Принято/самый upvoted answer:

function shuffle(array) { 
    var currentIndex = array.length, temporaryValue, randomIndex ; 

    // While there remain elements to shuffle... 
    while (0 !== currentIndex) { 

    // Pick a remaining element... 
    randomIndex = Math.floor(Math.random() * currentIndex); 
    currentIndex -= 1; 

    // And swap it with the current element. 
    temporaryValue = array[currentIndex]; 
    array[currentIndex] = array[randomIndex]; 
    array[randomIndex] = temporaryValue; 
    } 

    return array; 
} 

Что такое Фишер-Йейтс (он же Кнут) Shuffle, согласно автору ответа. Дополнительную информацию см. В оригинальном ответе и ссылках.

+0

Тот же алгоритм, что и @imnancysun, указывает на. – ryuu9187

+0

Да, я был слишком медленным :( –

+0

Это мысль, которая имеет значение :) – ryuu9187

Смежные вопросы