为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

守候你守候我 2023-08-18 16:53:52
如何在javascript中对数组进行随机排序?我已经尝试过这个:array.sort(function(a, b){return Math.random()});但它不起作用。
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

首先,欢迎您来到 stackoverflow!

你可以看看这个问题:Sorting an Array in Random Order


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


var points = [1, 2, 3, 4, 5];

points.sort(function(a, b){return 0.5 - Math.random()});

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


最流行的正确方法是 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

}


查看完整回答
反对 回复 2023-08-18
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信