2012-04-20 52 views
2

我有这样的代码:如何将字符串分割成数组,随机jQuery中

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

,将创建为我们所期待的阵列。但是有没有办法拆分这些单词,将它们混合后插入到substr数组中? 谢谢

+0

您可以将它们拆分成一个数组,然后使用'[] .sort()'方法对它们进行随机排序。 – 2012-04-20 19:05:29

回答

8

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

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

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

substr.sort(function() { 
    return(parseInt(Math.random()*10) %2); 
}); 
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。