博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js打乱数组排序
阅读量:4952 次
发布时间:2019-06-12

本文共 618 字,大约阅读时间需要 2 分钟。

一直使用的办法是网上百度来的,代码如下:

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

问题是,使用过程中经常发现部分元素并没有被打乱,也就是说经常出现以下情况

[1, 2, 4, 3]

后来重新想了下,感觉可能排序有问题,在网上找到了新的办法,代码如下:

var arr=[1, 2, 3, 4]shuffle(arr) function shuffle (arr) {  var i = arr.length, t, j  while (i) {       j = Math.floor(Math.random() * i--)      t = arr[i]      arr[i] = arr[j]      arr[j] = t  }}

ES6写法如下:

function shuffle(arr) {     let i = arr.length    while (i) {         let j = Math.floor(Math.random() * i--)        [arr[j], arr[i]] = [arr[i], arr[j]]    } }

 

转载于:https://www.cnblogs.com/wylj/p/9712718.html

你可能感兴趣的文章
Pylint在项目中的使用
查看>>
使用nginx做反向代理和负载均衡效果图
查看>>
access remote libvirtd
查看>>
gdb调试中出现No symbol table is loaded. Use the "file" command.问题
查看>>
(4) Orchard 开发之 Page 的信息存在哪?
查看>>
ASP.NET中 GridView(网格视图)的使用前台绑定
查看>>
图像加载
查看>>
关于zxing生成二维码,在微信长按识别不了问题
查看>>
Haskell学习-高阶函数
查看>>
手动通知扫描SD卡主动生成缩略图
查看>>
js中tagName和nodeName
查看>>
PC-XP系统忘记密码怎么办
查看>>
Android实例-打电话、发短信和邮件,取得手机IMEI号(XE8+小米2)
查看>>
深入了解Oracle ASM(二):ASM File number 1 文件目录
查看>>
SQL数据库学习系列之一
查看>>
Boosting(提升方法)之AdaBoost
查看>>
CUDA学习1 在Visual Studio和CodeBlocks上配置
查看>>
JavaScript(6)——事件1.0
查看>>
2013 ACM-ICPC China Nanjing Invitational Programming Contest 总结
查看>>
【Hibernate学习笔记-5】@Formula注解的使用
查看>>