2

我有这个代码:

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

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

4

2 回答 2

8

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

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

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

substr.sort(function () {
    return( parseInt( Math.random()*10 ) %2 );
});
于 2012-04-20T19:09:45.160 回答
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。

于 2012-04-20T19:22:08.963 回答