JavaScript 中的 str_shuffle() 等效项?

发布于 2024-09-06 12:10:16 字数 89 浏览 12 评论 0原文

就像 PHP 中的 str_shuffle() 函数一样,javascript 中是否有类似的打乱字符串的函数?

请帮忙!

Like the str_shuffle() function in PHP, is there a function similar in shuffling the string in javascript ?

Please help !

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

黄昏下泛黄的笔记 2024-09-13 12:10:16

不存在这样的函数,你自己写一个。这是一个例子:

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'));

No such function exist, you'll write one yourself. Here's an example:

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'));
迷迭香的记忆 2024-09-13 12:10:16

您可以使用 php.js 实现:
http://phpjs.org/functions/str_shuffle:529

You could use php.js implementation:
http://phpjs.org/functions/str_shuffle:529

烟雨扶苏 2024-09-13 12:10:16

不,字符串没有内置方法可以随机化字符序列。

No, there is no inbuilt method of String that will randomise the character sequence.

对风讲故事 2024-09-13 12:10:16

这是我的 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 ('');
}

Here's my versinof the php.js function

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 ('');
}
绝影如岚 2024-09-13 12:10:16

您也可以将其作为原型:

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('');
};

像这样使用它:

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

You could also do it as a 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('');
};

Using it like so:

var myString = "Hello";
myString = myString.shuffle();
与酒说心事 2024-09-13 12:10:16

我推荐 lodash shuffle 函数。

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

I would recommend lodash shuffle function.

const result = _.shuffle('my_string');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文