JS随机打乱数组的方法小结


Posted in Javascript onJune 22, 2016

本文实例总结了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中Array对象里内置了一个函数:

arrayobj.sort([sortfunction])

此方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。

sortFunction为可选项。

是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。

sortFunction方法有两个参数。分别代表每次排序比较时的两个数组项。sort()排序时每次比较两个数组项都回执行这个参数,并把两个比较的数组项作为参数传递给这个函数。当函数返回值为1的时候就交换两个数组项的顺序,否则就不交换。

我们可以对上面的randomsort()稍作修改,来实现升序排列和降序排列:

function asc(a,b) {
return a < b ? -1 : 1;//如果a<b不交换,否则交换,即升序排列
}
function desc(a,b) {
return a > b ? -1 : 1;;//如果a>b不交换,否则交换,即将序排列
}

另外,可以直接把一个无名函数直接放到sort()方法的调用中。如下的例子是将奇数排在前面,偶数排在后面,例子如下:

以下是引用片段:

var arrA = [6,2,4,3,5,1];
arrA.sort( function(x, y) {
if (x % 2 ==0) return 1;
if (x % 2 !=0) return -1;
});
document.writeln(arrA); //输出:1,5,3,4,6,2

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Javascript常用运算符(Operators)-javascript基础教程
Dec 14 Javascript
jQuery之字体大小的设置方法
Feb 27 Javascript
实例代码讲解jquery easyui动态tab页
Nov 17 Javascript
jquery利用json实现页面之间传值的实例解析
Dec 12 Javascript
Bootstrap CSS布局之表单
Dec 17 Javascript
bootstrap laydate日期组件使用详解
Jan 04 Javascript
jquery——九宫格大转盘抽奖实例
Jan 16 Javascript
js中的DOM模拟购物车功能
Mar 22 Javascript
angularjs的select使用及默认选中设置
Apr 08 Javascript
在使用JSON格式处理数据时应该注意的问题小结
May 20 Javascript
vue组件暴露和.js文件暴露接口操作
Aug 11 Javascript
vuex页面刷新导致数据丢失的解决方案
Dec 10 Vue.js
JS产生随机数的几个用法详解
Jun 22 #Javascript
js与applet相互调用的方法
Jun 22 #Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
Jun 22 #Javascript
JS 日期与时间戮相互转化的简单实例
Jun 22 #Javascript
静态页面html中跳转传值的JS处理技巧
Jun 22 #Javascript
浅谈JavaScript for循环 闭包
Jun 22 #Javascript
Javascript获取随机数的实现方法
Jun 22 #Javascript
You might like
用PHP读取IMAP邮件
2006/10/09 PHP
php mssql扩展SQL查询中文字段名解决方法
2012/10/15 PHP
PHP转换IP地址到真实地址的方法详解
2013/06/09 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
php实现微信分享朋友链接功能
2019/02/18 PHP
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
js获取当前路径的简单示例代码
2014/01/08 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
JS版微信6.0分享接口用法分析
2016/10/13 Javascript
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
PHP自动加载autoload和命名空间的应用小结
2017/12/01 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
2018/02/26 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
python实现在sqlite动态创建表的方法
2015/05/08 Python
python使用matplotlib绘制柱状图教程
2017/02/08 Python
Python使用PyCrypto实现AES加密功能示例
2017/05/22 Python
PyQt 线程类 QThread使用详解
2017/07/16 Python
浅谈Django自定义模板标签template_tags的用处
2017/12/20 Python
Python3.4实现远程控制电脑开关机
2018/02/22 Python
python excel转换csv代码实例
2019/08/26 Python
django中cookiecutter的使用教程
2020/12/03 Python
可口可乐广告词
2014/03/20 职场文书
中班开学寄语
2014/04/04 职场文书
后进生评语大全
2015/01/04 职场文书
运动会新闻稿
2015/07/17 职场文书
运动会新闻报道稿
2015/07/22 职场文书
诉讼和解协议书
2016/03/23 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js