如何在javascript中对数组进行随机排序?

Eri*_*idt 2 javascript arrays sorting random

如何在javascript中对数组进行随机排序?

我已经尝试过这个:

array.sort(function(a, b){return Math.random()}); 
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

Jet*_*ins 6

首先,欢迎您来到 stackoverflow!
你可以看看这个问题:Sorting an Array in Random Order

您可以通过提供自定义比较函数以随机顺序对数组进行排序:

var points = [1, 2, 3, 4, 5];
points.sort(function(a, b){return 0.5 - Math.random()});
Run Code Online (Sandbox Code Playgroud)

但上面的例子并不准确,它会偏向某些数字而不是其他数字。

最流行的正确方法是 Fisher Yates 洗牌:

var points = [40, 100, 1, 5, 25, 10];

for (i = points.length -1; i > 0; i--) {
  j = Math.floor(Math.random() * i)
  k = points[i]
  points[i] = points[j]
  points[j] = k
}
Run Code Online (Sandbox Code Playgroud)