如何在jQuery中将字符串随机分割为数组

3

I have this code:

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

这将创建我们期望的数组。但是有没有一种方法可以拆分这些单词,随机排列它们,然后将它们插入到substr数组中呢?谢谢。


你可以将它们拆分成数组,然后使用“[].sort()”方法随机排序。 - Kevin B
2个回答

9

原生的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。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接