2019独角兽企业重金招聘Python工程师标准>>>

我们先看一下随机数组排序的示例,再来研究其中的原理。

随机数组排序示例

var numbers = [5, 458 , 120 , -215 , 228 , 400 , 122205, -85411];
numbers = numbers.sort(function(){ return Math.random() - 0.5});

我们可以把任意数组重新排序,然后输入。

sort()的用法:

sort()是数组操作的一个方法,目的是对数组重新排序。先看下面的使用方法:

arrayobj.sort(function);

如果有函数,那么sort()方法会把数组中的元素两两传进执行的函数,如果返回为1则调换两个元素的位置,如果返回为-1则不变化。arrayobj为目标数组,function为sort()方法执行的函数,如果不写这个参数,那么元素将按照 ASCII 字符顺序进行升序排列。

注意:在执行的过程中,并不会生成新的数组对象。

使用sort()生成随机打乱数组:

看了上面的介绍应该明白了sort()用法,那么我们一起来看一下代码吧:

function autoSort(a,b){//生成随机数跟0.5比较return Math.random() >= 0.5 ? 1 : -1;
}
var arr = ["a","b","c","d"];
arr.sort(autoSort);//往autoSort中两两传入数组元素
alert(arr);//打乱顺序之后的随机数组。

如果你还不明白JS数学函数的应用,那么请阅读 《JS常用的数学函数总汇》上面的方法就是依赖autoSort()函数产生的随机数,如果>=0.5则返回1,小于0.5则返回-1。 从而sort()也就会随机排序数组了

转载于:https://my.oschina.net/zhangyafei/blog/756777

用sort()方法随机打乱数组相关推荐

  1. perl随机打乱数组

    perl有一个自带的随机打乱数组的库,使用方法如下: use List::Util; @array = List::Util::shuffle @array; 举一个例子: #! /usr/bin/p ...

  2. c++随机打乱数组_第四天 Java 数组与排序

    一. 数组 数组(Array),是多个相同类型数据按一定顺序排列 的集合,并使用一个名字命名,并通过编号的方式 对这些数据进行统一管理. 数组的常见概念 数组名 下标(或索引) 元素 数组的长度 数组 ...

  3. c++随机打乱数组_【洗牌算法】你确定这样的抽奖算法是随机的?

    洗牌算法在实际应用中使用的比较广泛,比如抽奖.三国杀游戏等等.由于要完全理解洗牌算法存在一定的难度,所以洗牌算法也经常被拿来做算法笔试题.例如以下两个常见的笔试题:在n个不同的数中随机取出不重复的m个 ...

  4. php将数组中元素打乱顺序,PHP公开课|学会随机打乱数组元素顺序的函数,你的PHP会学的更好...

    [摘要]PHP作为一种超文本预处理器,已经成为了我们常用的网站编程语言,并且结合了C语言,Java等我们常见的编程语言,所以,有很多web开发领域的新人都看中了他的使用广泛性,有很多人都想了解php的 ...

  5. js 排序,push,pop,shit,unshit(),splice(),随机打乱数组,随机方法总结

    前言 sort(a,b)对象用法 , 1.从数组中取出两个值 2.进行运算 3.>=0位置不变 <0交换位置 1.输出数组从大到小输出/2.从小到大同理,return b-a; var a ...

  6. c++随机打乱数组_编程之路之php数组操作详解【文末有惊喜】

    一.数组的操作 数组是一种复合数据类型,是数据的集合. 数组中的数据称为元素,每个元素是由键和值组成的键值对. 二.数组分类 1.关联数组 数据是由键和值形式构成的数组,键和值有一定关系 $arr = ...

  7. c++随机打乱数组_NumPy数组基本介绍

    本文作者:孙晓玲 文字编辑:钱梦璇 技术总编:张   邯 NumPy是短语"Numerical Python"的缩写,NumPy库是一个功能强大的Python库,主要用于对多维数组 ...

  8. 【python-numpy 】中的随机打乱数据方法np.random.shuffle

    描述: shuffle() 方法将序列的所有元素随机排序. #实验可得每次shuffle后数据都被打乱,这个方法可以在机器学习训练 #的时候在每个epoch结束后将数据重新洗牌进入下一个epoch的学 ...

  9. php 如何打乱数组顺序,【PHP打乱数组顺序的方法有哪些,这样的程序你真的会写吗】- 环球网校...

    [摘要]PHP作为一种超文本预处理器,已经成为了我们常用的网站编程语言,并且结合了C语言,Java等我们常见的编程语言,所以,有很多web开发领域的新人都看中了他的使用广泛性,有很多人都想了解php的 ...

最新文章

  1. 和12岁小同志搞创客开发:手撕代码,做一款火焰报警器
  2. 性能分析工具 Android TraceView
  3. samba 问题Windows能看到文件夹但是不能打开(路径写错了)
  4. OpenCV纠正文本中的偏斜(附完整代码)
  5. 冲突域、广播域的通俗讲解
  6. 叫板 Android 开发!跨平台应用开发神器 Flutter 又添开源插件!| 技术头条
  7. 年会宣布 996 后,那些保持沉默的人
  8. uml系统设计期末大作业_梳理一下计算机期末大作业
  9. 以一种访问权限不允许的方式做了一个访问套接字的尝试。
  10. FusionCharts 分类以及各个属性参数列表
  11. mysql数据库文件怎么用_mysql数据库文件怎么用
  12. QQ表情的发送与接收
  13. QT 输入框禁止window10触摸屏弹出键盘
  14. 基于ZigBee 的多点温度采集系统设计与实现
  15. Centos6.9 下的 CM(Cloudera Manager)CDH 大数据环境部署
  16. C语言:浙大版《C语言程序设计(第3版)》题目集 练习5-1 求m到n之和 (10 分)
  17. cad调了比例因子没反应_CAD制图初学入门技巧:将CAD图形缩放为指定尺寸
  18. 微信分享打不开分享界面
  19. css mix-blend,详解CSS3的mix-blend-mode属性
  20. 马云在京员工大会演讲

热门文章

  1. RawCode-本身就是实验性的8位类型
  2. 2021年7月 虾皮、货拉拉、有赞等面经总结
  3. MobX 上手指南,写 Vue 的感觉?
  4. 梯度下降法和随机梯度下降法
  5. 谈谈- declare-styleable属性
  6. Tomcat相关 -- 内存设置
  7. struct and union
  8. 乘基取整法是什么_十进制小数转二进制小数乘2取整法的直观理解
  9. mysql8用户管理
  10. js中 给json对象添加属性和json数组添加元素