如何在jquery中随机将字符串拆分为数组

时间:2012-04-20 19:00:03

标签: jquery arrays split

我有这段代码:

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

这将按照我们的预期创建阵列。但有没有办法分割单词,将它们随机播放然后将它们插入到substr数组中? 感谢

2 个答案:

答案 0 :(得分:8)

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

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

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

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

答案 1 :(得分:1)

我大多数得到的答案与keune相同,只是一些风格差异:)

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

另外,作为一种小调风格,这与JQuery无关。这是纯粹的JavaScript。