文档章节

JS随即打乱数组实现代码

piggybear
 piggybear
发布于 2015/02/16 10:33
字数 302
阅读 7
收藏 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是随即出现的。所以数组就被随即排序了。*/ 

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

本文转载自:http://blog.csdn.net/aa294194253/article/details/42971233

共有 人打赏支持
piggybear
粉丝 3
博文 237
码字总数 37552
作品 0
西安
技术主管
用js来实现那些数据结构及算法—目录

  首先,有一点要声明,下面所有文章的所有内容的代码,都不是我一个人独立完成的,它们来自于一本叫做《学习JavaScript数据结构和算法》(第二版),人民邮电出版社出版的这本书。github代...

zaking
05/10
0
0
JavaScript专题之乱序

JavaScript 专题系列第十九篇,讲解数组乱序,重点探究 Math.random() 为什么不能真正的乱序? 乱序 乱序的意思就是将数组打乱。 嗯,没有了,直接看代码吧。 Math.random 一个经常会遇见的写...

冴羽
2017/10/12
0
0
编写一个简单的JavaScript模板引擎

本文首发于我的知乎专栏,转发于掘金。若需要用于商业用途,请经本人同意。 尊重每一位认真写文章的前端大佬,文末给出了本人思路的参考文章。 前言 能够访问到这篇文章的同学,初衷是想知道...

凯斯
07/03
0
0
精读《JS 引擎基础之 Shapes and Inline Caches》

1 引言 本期精读的文章是:JS 引擎基础之 Shapes and Inline Caches 一起了解下 JS 引擎是如何运作的吧! JS 的运作机制可以分为 AST 分析、引擎执行两个步骤: JS 源码通过 parser(分析器)...

黄子毅
06/25
0
0
【JSConf EU 2018】JavaScript引擎: 精粹部分

JSConf EU 2018圆满结束, 谷歌V8的开发者Mathias Bynens以及Benedikt Meurer一起发表了《JavaScript Engines: The Good Parts™》演讲,本文将带领大家回顾一下演讲上所提到的重点。 演讲第一...

想成为工匠的码农
06/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

[MicroPython]STM32F407开发板驱动OLED液晶屏

1.实验目的 1.学习在PC机系统中扩展简单I/O 接口的方法。 2.进一步学习编制数据输出程序的设计方法。 3.学习 F407 Micropython开发板控制OLED显示字符。 2.所需元器件 F407 Micropython开发板...

bodasisiter
33分钟前
0
0
php require和include 相对路径一个有趣的坑

以前总是被教育,不要使用相对路径,这样性能比较差,但是相对路径的问题不仅仅是性能哦,看下面这里例子 这是项目结构 .├── main.php├── t│ ├── t1.php│ └── t2.php└─...

anoty
33分钟前
17
0
x64技术之SSDT_Hook

测试环境: 虚拟机: Windows 7 64bit 过PG工具 驱动加载工具 PCHunter64 系统自带的计算器和任务管理器等 实现思路: 实际思路与win32的思路一样.都是替换SSDT表里边的函数地址.不过微软被搞怕...

simpower
34分钟前
0
0
TreeMap源码分析,看了都说好

一、简介 TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现。TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey、get、put 和 remove 操作,效率很...

Java小铺
44分钟前
0
0
协变、逆变

概念 假设 A、B表示类型 ≤ 表示继承关系 f<⋅>表示类型转换 若A ≤ B,则 A是B的子类,B是A的超类 协变、逆变 什么是型变?型变(type variance)允许对类型进行子类型转换。 为了下面讲解先...

obaniu
50分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部