Say У меня есть массив:Randomize или перетасовать массив
myList:Array = new Array();
myList = [1,2,3,4,5,6,7,8,9];
myRandomList:Array = new Array();
for (var i:uint = 0; i < myList; i++) {
var item:Number = Math.floor(Math.random() * myList.length-1) + 1;
myRandomList.push(item);
}
Единственное, я хотел бы myRandomList, чтобы не иметь каких-либо повторяющихся чисел ... есть способ, чтобы выбрать случайное число из первый список, а затем SUBTRACT, поэтому я не выбираю этот номер дважды?
UPDATE:
Я только что видел этот метод перетасовки массив из shadetyler.blogspot.com/2008/12/array-shuffle-as3.html
Array.prototype.shuffle = function(){
for(var i = 0; i < this.length; i++){
var a = this[i];
var b = Math.floor(Math.random() * this.length);
this[i] = this[b];
this[b] = a;
}
Однако, есть способ переписать это как функцию? }
Посмотрите на функцию 'array.splice'. –
Я только что увидел, что вы можете использовать сращивание ... но есть также метод Array.prototype, который должен быть быстрее? shadetyler.blogspot.com/2008/12/array-shuffle-as3.html – redconservatory
Попробуйте мою реализацию для перетасовки массива, ответьте здесь: http://stackoverflow.com/a/25702799/1521021 – Glogo