三种方式实现生成随机不重复数字:
<!DOCTYPE html> <html> <head> <title>生成随机不重复数</title> </head> <body> <script type="text/javascript"> var arr=new Array(); for(var i=0;i<10;i++){ arr.push(i); } // console.log(arr) var getRandom=function(arr){ var len=arr.length; var result=[]; //随机索引数 var r; // 方法一:生成随机索引,生成一个,删除一个 // for(var i=0;i<len;i++){ // //向下舍入取随机整数,生成索引 // r=Math.floor(Math.random()*arr.length); // result.push(arr[r]); // //删除该随机 // arr.splice(r,1); // } // 方法二:生成随机索引,生成一个,该数组对应的值为null,下次随机取到值为null时跳过 // for(var i=0;i<len;i++){ // do{ // r=Math.floor(Math.random()*len); // //当arr[r]==null时,继续生成随机数 // }while(arr[r]==null){ // result.push(arr[r]); // arr[r]=null; // } // } //方法三:打散数组的方式 arr.sort(function(){return 0.5-Math.random()}); result=arr; return result; } console.log(getRandom(arr)); </script> </body> </html>