文档章节

JS随即打乱数组实现代码

piggybear
 piggybear
发布于 2015/02/16 10:33
字数 302
阅读 15
收藏 0

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

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是随即出现的。所以数组就被随即排序了。*/ 

后面两句输出给你看的。呵呵。

© 著作权归作者所有

piggybear
粉丝 3
博文 237
码字总数 37552
作品 0
西安
技术主管
私信 提问
【JavaScript】生成一段序列不同的随机数

在JavaScript如果需要生成一段不同的随机数,最好的方法,还是将要产生的随机数的范围放到这一个数组,并打乱这个数组的顺序。 由于JavaScript里面是没有shuffle这个函数的,所以我们要打乱数...

yongh701
2018/09/01
0
0
45个有用的JavaScript技巧,窍门和最佳实践

1. 首次为变量赋值时务必使用var关键字 变量没有声明而直接赋值得话,默认会作为一个新的全局变量,要尽量避免使用全局变量。 2. 使用===取代== ==和!=操作符会在需要的情况下自动转换数据类...

kovlento
05/08
0
0
JavaScript开发的40+个经典技巧

JavaScript是一个绝冠全球的编程语言,可用于Web开发、移动应用开发(PhoneGap、Appcelerator)、服务器端开发(Node.js和Wakanda)等等。JavaScript还是很多新手踏入编程世界的第一个语言。...

大灰狼的小绵羊哥哥
2018/12/06
0
0
打造属于自己的underscore系列(六)- 洗牌算法

javascript如何将一个无序的数组变成一个有序的数组,我们有很多的排序算法可以实现,例如冒泡算法,快速排序,插入排序等。然而我们是否想过,如何将一个有序的数组乱序输出呢?本文将从经典...

不做祖国的韭菜
02/17
0
0
通过n次循环获得n个自然数随机排序

刚才在51js看到有网友问,"1到100一百个数,怎么用JS来随机打乱它们的顺序呢?"。他说的这个不就是洗牌问题嘛,想起原来自己在做一个扑克游戏的时候设计过一个高效的洗牌算法,n个自然数通过...

唐玄奘
2017/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

由test_decoding学习如何编写PostgreSQL逻辑解码插件

PostgreSQL提供很多接口,允许用户定制自己需要的功能,很多时候文档并不能让我们完全理解和把握它们的使用。如果需要开发一个自己的功能,该如何下手?下边是我作为一名代码搬运工的工作方式...

有理想的猪
50分钟前
4
0
IT兄弟连 Java语法教程 流程控制语句 循环结构语句3

while循环 Java中的另外一种循环是while循环。while循环的语法格式如下: while(条件表达式){ 循环体; } 其中条件表达式定义了控制循环的条件,可以使任何有效的boolean表达式,条件为真时,...

老码农的一亩三分地
今天
2
0
OSChina 周四乱弹 —— 你们倒是救驾啊,别笑啦

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @RISYOII :#今日歌曲推荐# 一荤一素 太年轻的人 他总是不满足 固执地不愿停下 远行的脚步 望着高高的天 走了长长的路 忘了回头看 她有没有哭...

小小编辑
今天
2.1K
15
idea下springboot 项目在static目录下添加文件不生效

idea下springboot 项目在static目录下添加文件不生效 问题描述 是这样子的,我的项目目录结构如下: 我在static目录下,创建了index.html和aaaa.jpg这两个文件。然后,启动服务访问 http://l...

wotrd
昨天
7
0
k8s1.14 一、环境

1. 4台虚拟机 (CentOS Linux release 7.2.1511 (Core) ) 192.168.130.211 master 192.168.130.212 node1 192.168.130.213 node2 192.168.130.214 node3 2. 设置服务器hostname 2.1 设置本机......

ThomasCheng
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部