js随机打乱数组算法

最近在写生成数独的算法时,需要随机打乱数组,发现了如下方法。

1
2
var arr = [1,2,3,4,5,6]
arr.sort(function(){return Math.random()-0.5>0?-1:1})

短短两行代码就实现了随机打乱数组啦,下面介绍一下arr.sort(),具体内容参阅Array.prototype.sort()

arr.sort(compareFunction)

sort()对数组的元素进行排序,并返回数组。其中compareFunction可选用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的各个字符的Unicode位点进行排序。使用sort()后返回排序后的数组。原数组已经被排序后的数组代替。