La question n'est pas comment faire le shuffle, j'y arrive très bien autrement.
J'étais juste en train de m'amuser avec différentes syntaxes et j'ai abouti à ce script qui me pose deux interrogation:
1 2 3 4 5 6 7 8 9
| var ar = new Array("0","1","2","3","4","5","6","7","8","9");
Array.prototype.shuffle= function ()
{
for( var j=new Array(); this[0]; j.push( this.splice(Math.floor(Math.random() * this.length),1)));
this=this.concat(j)
}
ar.shuffle();
alert(ar) |
il refuse de m'affecter this=this.concat(j)
pourtant this se vide bien.
Je suis obligé de faire:
ce qui m'oblige à appeler la le prototype différemment :
Pourquoi ne puis-je affecter j a this ?
D'autre part si mon array est numerique au lieu d'alpha
var ar = new Array(0;1;2;3;4;5;6;7;8;9);
ça ne fonctionne plus du tout ???
Partager