2015-02-12 2 views
0

Я показываю случайные числа на отдельных спрайтах и ​​хочу перетасовать отдельный контейнер с тем же изображением на нем. как случайным образом перемешать набор спрайтов, не повторяя один и тот же цвет?Выбирайте случайные элементы из массива без повторения

Мой массив:

var color = new Array(); 
    color[0] = 'greenBox'; 
    color[1] = 'blueBox'; 
    color[2] = 'purpleBox'; 
    color[3] = 'yellowBox'; 
    color[4] = 'redBox'; 
    color[5] = 'whiteBox'; 
    color[6] = 'pinkBox'; 

ответ

2

Если вам не нужен массив позже, вы могли бы сделать что-то вроде этого:

var color = [ 
    "greenBox", 
    "blueBox", 
    ... 
]; 

while (color.length != 0) { 
    var index = Math.floor(Math.random()*color.length); 
    var pickedColor = color[index]; 
    colors.splice(index, 1); // This removes the picked element from the array 
    doStuffWith(pickedColor); 
} 

Это уничтожит массив, но он никогда не будет выбрать тот же элемент дважды

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