2010-06-20 19 views

Répondre

4

Une telle fonction existe, vous écrivez vous-même. Voici un exemple:

function shuffle(string) { 
    var parts = string.split(''); 
    for (var i = parts.length; i > 0;) { 
     var random = parseInt(Math.random() * i); 
     var temp = parts[--i]; 
     parts[i] = parts[random]; 
     parts[random] = temp; 
    } 
    return parts.join(''); 
} 

alert(shuffle('abcdef')); 
+0

BTW, c'est le shuffle de Fisher-Yates: http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle –

0

Non, il n'y a pas de méthode intégrée de chaîne qui va randomiser la séquence de caractères.

0

Voici mon versinof la fonction php.js

function str_shuffle (str) { 

    var newStr = []; 

    if (arguments.length < 1) { 
     throw 'str_shuffle : Parameter str not specified'; 
    } 

    if (typeof str !== 'string') { 
     throw 'str_shuffle : Parameter str (= ' + str + ') is not a string'; 
    } 

    str = str.split (''); 
    while (str.length) { 
     newStr.push (str.splice (Math.floor (Math.random() * (str.length - 1)) , 1)[0]); 
    } 

    return newStr.join (''); 
} 
0

Vous pouvez aussi le faire comme prototype:

String.prototype.shuffle = function() { 
    var parts = this.split(''); 

    for (var i = 0, len = parts.length; i < len; i++) { 
    var j = Math.floor(Math.random() * (i + 1)); 
    var temp = parts[i]; 
    parts[i] = parts[j]; 
    parts[j] = temp; 
    } 

    return parts.join(''); 
}; 

En utilisant comme ceci:

var myString = "Hello"; 
myString = myString.shuffle(); 
0

Je recommande lodash shuffle fonction.

const result = _.shuffle('my_string');