分享下javascript里去重随机数的处理方法。
我们可以用Math.random()的方法轻松的生成 一个随机的数字,但是这个数字可能是重复的。有时候,我们需要一个不重复的随机数,可以用很多的方法来实现这个要求,以下方法是效率最高的。
分析
不重复的随机数往往是规定范围的,我们先声明一个在这个范围之内的数组,然后用sort方法对数组进行排序。而排序的方法里使用一个随机数,这个随机数使这个排序方法是不确定的。因此可以得到一个不重复的随机数组。
DEMO
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>随机不重复 - Web前端之家https://jiangweishan.com/</title> <script type="text/javascript"> var count = 10; //原始数组 var original = new Array; //给原始数组original赋值 for (var i = 0; i < count; i++) { original[i] = i + 1; } var d1 = new Date().getTime(); //排序 original.sort(function() { return 0.5 - Math.random(); }); //输出 for (var i = 0; i < count; i++) { document.write(original[i] + " , "); } var d2 = new Date().getTime(); document.write("<br />运算耗时" + (d2 - d1)); </script> </head> <body> </body> </html>
大家可以预览看下效果。
网友评论文明上网理性发言 已有0人参与
发表评论: