Comme la fonction str_shuffle()
en PHP, y a-t-il une fonction similaire en mélangeant la chaîne en javascript?str_shuffle() équivalent en javascript?
Aidez s'il vous plaît!
Comme la fonction str_shuffle()
en PHP, y a-t-il une fonction similaire en mélangeant la chaîne en javascript?str_shuffle() équivalent en javascript?
Aidez s'il vous plaît!
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'));
Non, il n'y a pas de méthode intégrée de chaîne qui va randomiser la séquence de caractères.
Vous pouvez utiliser php.js mise en œuvre: http://phpjs.org/functions/str_shuffle:529
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 ('');
}
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();
Je recommande lodash shuffle fonction.
const result = _.shuffle('my_string');
BTW, c'est le shuffle de Fisher-Yates: http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle –