11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour !

Je cherche une fonction elegante pour melanger un tableau de tableaux.

J'avoue que je suis assez fier d'avoir invente le script ci-dessous. Malheureusement, il casse les lignes.

Merci de votre aide !


tableau=[
['Bernard','Bernard'],
['Jean','Jean'],
['Jocelyne','Jocelyne'],
['Maud','Maud'],
['Rudolf','Rudolf']
]

function aleater()
{
return Math.pow(-1, Math.round(2*Math.random()))
}

alert(tableau.sort(aleater))
Il semblerait que ce ne soit pas une méthode stable de mélange d'utiliser le sort pour fair cela...
Il serait plus sage de le faire plus traditionnellement par une var temp
Array.prototype.melange = function() {
for(var i = 0; i < this.length; i++) { 
var n = Math.floor(Math.random() * this.length); 
var tmp = this[i];
this[i] = this[n];
this[n] = tmp; } 
return this; } 

alert(["a","b","c","d","e","f","g","h","i","j","k","l","m","n"].melange())
[/i][/i]