JS打乱数组最高效的方法

转载 2015年11月18日 22:29:24

这个方法是我见过对高效的。

 

复制代码
var arr=[];
for(var i=0;i<100;i++){
arr[i]
=i;
}
arr.sort(
function(){ return 0.5 - Math.random() })
var str=arr.join();
alert(str);
复制代码

 

 

代码解释:

 

var arr=[];//新建一个数组 这是大家推荐的方式。
//
而不推荐使用 var arr=new Array();

 

这句不用解释了。

for(var i=0;i<100;i++){
arr[i]
=i;
}
//循环给数组赋值

 

 

 

关键第地方来了

 

复制代码
arr.sort(function(){ return 0.5 - Math.random() })
//sort 是对数组进行排序
//
他的是这样工作的。每次从数组里面挑选两个数 进行运算。
//
如果传入的参数是0 两个数位置不变。
//
如果参数小于0 就交换位置
//
如果参数大于0就不交换位置
//
接下来用刚才的较大数字跟下一个进行比较。这样循环进行排序。

/*恰好。我们利用了这一点使用了0.5 - Math.random 这个运算的结果要么是大于0,要么是小于0.这样要么交换位置,要么不交换位置。当然大于或者小于0是随即出现的。所以数组就被随即排序了。*/
复制代码

 


举报

相关文章推荐

最精简高效的PHP数组转HTML代码的方法array2html

目前网络上常规的 PHP 数组转 HTML 代码的方法都是通过循环 for 或者 foreach 来遍历数组,然后通过字符替换、正则表达式替换或者字符拼接等方法来生成 HTML 代码,为了避免使用循环...
  • hpchn
  • hpchn
  • 2014-02-14 13:17
  • 550

js数组方法

js数组

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

js中的数组方法

var arr=[2,45,657,3,56,33,22,0,756];//9项 // arr[9]=34;//通过不存在的数组项增加数组; // alert(arr); // arr.length=...

js 数组对象的操作方法

转自 http://www.iteye.com/topic/294718   注意:以下是按操作来分类的,有的方法有多个用途,就有重复 1、数组的创建 var arrayObj...

js 数组对象的操作方法

注意:以下是按操作来分类的,有的方法有多个用途,就有重复 1、数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Arra...

js 数组快速查询指定字符串方法

转载自:http://blog.sina.com.cn/s/blog_024ec1880100t6p9.html 有一个动态数组,[adfjsf,ad2fjsf,adf32jsf,ad4fjsf,a...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)