JavaScript对数组进行随机重排的方法
本文实例讲述了JavaScript对数组进行随机重排的方法。分享给大家供大家参考。具体如下:
这里提供了两个方法对数组进行随机重排。
<script> var count = 100000,arr = []; for(var i=0;i<count;i++){ arr.push(i); } //常规方法,sort() var t = new Date().getTime(); Array.prototype.sort.call(arr,function(a,b){ return Math.random()>.5 ? -1 : 1;}); document.write(arr+'<br/>'); var t1 = new Date().getTime(); document.write(t1-t); //以下方法效率最高 if (!Array.prototype.shuffle) { Array.prototype.shuffle = function() { for(var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x); return this; }; } var t = new Date().getTime(); arr.shuffle(); document.write('<br/>'+arr+'<br/>'); var t1 = new Date().getTime(); document.write(t1-t); </script>
希望本文所述对大家的javascript程序设计有所帮助。
相关推荐
-
JavaScript实现数组随机排序的方法
本文实例讲述了JavaScript实现数组随机排序的方法.分享给大家供大家参考.具体实现方法如下: function Shuffle(o) { for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x); return o; }; 使用方法: var testArray = [1,2,3,4,5]; Shuffle(testArray); // jQuery
-
JavaScript数组随机排列实现随机洗牌功能
本文实例讲述了JavaScript数组随机排列实现随机洗牌功能的方法.分享给大家供大家参考.具体分析如下: 这段JS代码可以对数组内的元素进行随机排列,这个非常有用,比如我们在玩扑克牌的时候可以让扑克牌进行排列,也就是电脑洗牌. var list = [1,2,3,4,5,6,7,8,9]; list = list.sort(function() Math.random() - 0.5); Print(list); // prints something like: 4,3,1,2,9,5,6,
-
JavaScript学习笔记之数组随机排序
推荐阅读:JavaScript学习笔记之数组求和方法 JavaScript学习笔记之数组的增.删.改.查 JavaScript中提供了sort()和reverse()方法对数组项重新排序.但很多时候这两个方法无法满足我们实际业务的需求,比如说扑克牌游戏中的随机洗牌. 在这篇文章一起来学习如何完成上面这个示例的效果,以及一些有关于数组随机排序的相关知识. 在网上查了一下有关于数组随机排序的相关资料,都看到了Math.random()的身影.打开浏览器控制器,输入: Math.random() 从图
-
用js实现随机返回数组的一个元素
复制代码 代码如下: <SCRIPT LANGUAGE="JavaScript"> <!-- var test = ["aa","bb","cc","dd","ee"]; document.write(test[Math.floor(Math.random()*test.length)]); setInterval("location.reload()&quo
-
js获取数组任意个不重复的随机数组元素 原创
复制代码 代码如下: <script language="javascript"> //从一个给定的数组arr中,随机返回num个不重复项 function getArrayItems(arr, num) { //新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组; var temp_array = new Array(); for (var index in arr) { temp_array.push(arr[index]); } //取出的数值项,
-
JS随机打乱数组的方法小结
本文实例总结了JS随机打乱数组的方法.分享给大家供大家参考,具体如下: JS中,要打乱数组有很多方法,网上流传一个国外人写的方法,我认为是最精简的了: function randomsort(a, b) { return Math.random()>.5 ? -1 : 1; //用Math.random()函数生成0~1之间的随机数与0.5比较,返回-1或1 } var arr = [1, 2, 3, 4, 5]; arr.sort(randomsort); 这里介绍下sort()函数,在JS中
-
javascript实现随机读取数组的方法
本文实例讲述了javascript实现随机读取数组的方法.分享给大家供大家参考.具体如下: function write_quote() { var quotes = [ 'no animals were harmed while making this page', 'made in ulm', 'this page was handmade', 'Get <a href="http://www.mozilla.org/products/firefox/">FireFox
-
JS生成不重复随机数组的函数代码
复制代码 代码如下: //获取数组中的随机数//HF.Math.RandomNumbers是前缀,可以自己定义,主要看逻辑代码HF.Math.RandomNumbers = function (startNum, endNum, count, repeat) { var ret = []; if (repeat) { for (var i = 0; i < count; i++) { ret[i] = HF.Math.Random(startNum
-
js实现从数组里随机获取元素
基础知识: 复制数组: (1)循环遍历复制(不推荐) 复制代码 代码如下: var arry = [1,5,9,7], new_arry = [], n = 0, len = arry.length; for(;n<len;n++){ new_arry.push(arry[n]); } (2)concat() 方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本 复制代码 代码如下: var arry = [1,5,9,7],
-
JS随机洗牌算法之数组随机排序
推荐阅读:JavaScript学习笔记之数组的增.删.改.查 JavaScript学习笔记之数组求和方法 JavaScript学习笔记之数组随机排序 洗牌算法是一个比较形象的术语,本质上让一个数组内的元素随机排列.举例来说,我们有一个如下图所示的数组,数组长度为 9,数组内元素的值顺次分别是 1~9: 从上面这个数组入手,我们要做的就是打乱数组内元素的顺序: 代码实现 维基百科上的 Fisher–Yates shuffle 词条对洗牌算法做了详细介绍,下面演示的算法也是基于其中的理论编写的: A
-
JS 在指定数组中随机取出N个不重复的数据
复制代码 代码如下: <script language="javascript">//从一个给定的数组arr中,随机返回num个不重复项function getArrayItems(arr, num) { //新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组; var temp_array = new Array(); for (var index in arr) { temp_array.push(arr[index]
-
js数组中如何随机取出一个值
复制代码 代码如下: <html> <boby> </body> <script language="javascript"> window.onload = function(){ var arr = ["太阳光大.父母恩大.君子量大.小人气大","成功是优点的发挥,失败是缺点的累积","不要小看自己,因为人有无限的可能", "口说好话.心想好意.身行好事"
-
从数组中随机取x条不重复数据的JS代码
工作中经常遇到有关数组的一些操作 1. 从数据中随机取x条不重复的数据 (PS:下面的S.each是KISSY.each方法,大家可以改为for循环) 复制代码 代码如下: /*从数组arr中随机取x条不重复的数据 */ function myRand(arr,num){ var newArr = []; rand(num); //随机 x 个 function rand(k){ if(k==0){ return; }
随机推荐
- 详解Angular Reactive Form 表单验证
- .NET发送邮件遇到问题及解决方法
- docker中修改镜像容器的存放目录的方法
- ADSL防御黑客攻击的十大方法
- jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
- 登录oracle数据库时密码忘记的解决方法
- 团购、定时抢购倒计时js版
- asp.net直接Response输出WML页面示例代码
- PHP利用APC模块实现文件上传进度条的方法
- 如何通过其他主机查看Apahce服务器的运行状态
- JS 调用微信扫一扫功能
- java中的key接口解析
- Android 调用系统相机拍摄获取照片的两种方法实现实例
- Cisco路由交换设备之IOS故障排除
- Django uwsgi Nginx 的生产环境部署详解
- Python读取YUV文件,并显示的方法
- security.js实现的RSA加密功能示例
- 关于C++友元函数的实现讲解
- Angular实现模版驱动表单的自定义校验功能(密码确认为例)
- C语言实现单词小助手改进版