JavaScript中实现PHP的打乱数组函数shuffle实例


Posted in Javascript onOctober 11, 2014

PHP 里面有个非常方便的打乱数组的函数 shuffle() ,这个功能在许多情况下都会用到,但 javascript 的数组却没有这个方法,没有不要紧,可以扩展一个,自己动手,丰衣足食嘛。

请刷新页面查看随机排序效果。

<script type="text/javascript">

//<![CDATA[

// 说明:为 Javascript 数组添加 shuffle 方法

 

var shuffle = function(v){

    for(var j, x, i = v.length; i; j = parseInt(Math.random() * i), x = v[--i], v[i] = v[j], v[j] = x);

    return v;

};

 

var a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

 

document.write("A = ", a.join(","), "<br />shuffle(A) = ", shuffle(a));

 

//]]>

</script>

输出结果:

A = 0,1,2,3,4,5,6,7,8,9
shuffle(A) = 1,5,0,9,2,3,6,8,4,7

A.shuffle() = 0,4,2,8,5,1,3,6,9,7

通过prototype 给数组添加一个方法:

<script type="text/javascript">

//<![CDATA[

 

var a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

 

if (!Array.prototype.shuffle) { 

    Array.prototype.shuffle = function() {

        for(var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);

        return this;

    };

}

 

document.write("A = ", a.join(","), "<br />A.shuffle() = ", a.shuffle());

 

//]]>

</script>
Javascript 相关文章推荐
javascript读取xml
Nov 04 Javascript
跟着JQuery API学Jquery 之三 筛选
Apr 09 Javascript
jquery dialog键盘事件代码
Aug 01 Javascript
新手常遇到的一些jquery问题整理
Aug 16 Javascript
Javascript 面试题随笔
Mar 31 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
Apr 08 Javascript
javascript实现简单的贪吃蛇游戏
Mar 31 Javascript
jquery+html5烂漫爱心表白动画代码分享
Aug 24 Javascript
jQuery简单验证上传文件大小及类型的方法
Jun 02 Javascript
JavaScript实现构造json数组的方法分析
Aug 17 Javascript
浅谈javascript如何获取文件后缀名
Aug 07 Javascript
JavaScript 如何计算文本的行数的实现
Sep 14 Javascript
JavaScript定义变量和变量优先级问题探讨
Oct 11 #Javascript
JavaScript中获取鼠标位置相关属性总结
Oct 11 #Javascript
JavaScript中最简洁的编码html字符串的方法
Oct 11 #Javascript
原生Javascript封装的一个AJAX函数分享
Oct 11 #Javascript
探讨js字符串数组拼接的性能问题
Oct 11 #Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
Oct 10 #Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
Oct 10 #Javascript
You might like
建立文件交换功能的脚本(三)
2006/10/09 PHP
PHP UTF8编码内的繁简转换类
2009/07/20 PHP
php+mysqli使用预处理技术进行数据库查询的方法
2015/01/28 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
return false;和e.preventDefault();的区别
2010/07/11 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
bootstrap制作jsp页面(根据值让table显示选中)
2017/01/05 Javascript
JS运动特效之链式运动分析
2018/01/24 Javascript
关于Google发布的JavaScript代码规范你要知道哪些
2018/04/04 Javascript
基于js Canvas实现二次贝塞尔曲线
2018/12/25 Javascript
vue下的@change事件的实现
2019/10/25 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
vue print.js打印支持Echarts图表操作
2020/11/13 Javascript
[01:12](回顾)DOTA2国际邀请赛,全世界DOTAer的盛宴
2014/07/01 DOTA
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
Python线程同步的实现代码
2018/10/03 Python
python OpenCV GrabCut使用实例解析
2019/11/11 Python
Python中sys模块功能与用法实例详解
2020/02/26 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
医学毕业生自荐信
2013/10/11 职场文书
预备党员党校学习自我评价分享
2013/11/12 职场文书
求职信模版
2013/11/30 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书
客户经理岗位职责
2015/01/31 职场文书
培训师岗位职责
2015/02/14 职场文书
学术会议通知
2015/04/15 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
中小企业员工手册范本
2015/05/14 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android