【问题标题】:How to split a string into array, randomly in jquery如何在jquery中随机将字符串拆分为数组
【发布时间】:2012-04-20 19:00:03
【问题描述】:

我有这个代码:

var str = 'one, two, three';
var substr = str.split(', ');

这将按照我们的预期创建数组。但是有没有办法拆分单词,打乱它们然后将它们插入到 substr 数组中? 谢谢

【问题讨论】:

  • 您可以将它们拆分成一个数组,然后使用[].sort() 方法随机排序。

标签: jquery arrays split


【解决方案1】:

原生 sort() 函数可以获取一个函数作为参数,让您决定如何对数组进行排序。

所以你可以给它一个函数来生成随机结果。

var str = 'one, two, three';
var substr = str.split(', ');

substr.sort(function () {
    return( parseInt( Math.random()*10 ) %2 );
});

【讨论】:

    【解决方案2】:

    我得到的答案大多与 keune 相同,只是风格不同 :)

    var random_results = 'one, two, three'.
                            split(/\s*,\s*/).
                            sort(function(){
                                return (-1 + Math.floor((Math.random() * 3))) 
                            })
    
    • 我将您的显式 ', ' 拆分更改为正则表达式。如果您打算只匹配那个特定的子字符串,那很好,但是如果您正在处理用户输入,那么编写拆分很方便,这样您就可以处理逗号之前或之后存在的空格,并由split 函数。
    • keune 和我都为 sort() 函数计算不同的返回值。两者都提供随机结果;只要您返回一个可能为正数或负数的随机整数值,您就可以得到您的洗牌数组。

    另外,作为一个小风格说明,这与 JQuery 无关。这是纯 JavaScript。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      • 2021-04-14
      • 1970-01-01
      相关资源
      最近更新 更多