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 相关文章推荐
js日期时间补零的小例子
Mar 05 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
Nov 14 Javascript
HTML页面登录时的JS验证方法
May 28 Javascript
jQuery表格插件datatables用法总结
Sep 05 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
Aug 10 Javascript
jQuery siblings()用法实例详解
Apr 26 Javascript
微信小程序 tabs选项卡效果的实现
Jan 05 Javascript
angularjs实现上拉加载和下拉刷新数据功能
Jun 12 Javascript
解决vue build打包之后首页白屏的问题
Mar 06 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
Jul 19 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
Sep 02 Javascript
微信小程序用户盒子、宫格列表的实现
Jul 01 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
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
2016/01/07 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
2020/06/05 PHP
jquery键盘事件介绍
2011/01/31 Javascript
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
2011/11/30 Javascript
js获取网页高度(详细整理)
2012/12/28 Javascript
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
javascript实现C语言经典程序题
2015/11/29 Javascript
基于JavaScript代码实现自动生成表格
2016/06/15 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
2017/02/15 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
VUE中的无限循环代码解析
2017/09/22 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
vue 父组件中调用子组件函数的方法
2019/06/06 Javascript
详解vue中的父子传值双向绑定及数据更新问题
2019/06/13 Javascript
React Native 混合开发多入口加载方式详解
2019/09/23 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
JavaScript定时器使用方法详解
2020/03/26 Javascript
JS倒计时两种实现方式代码实例
2020/07/27 Javascript
Python中在脚本中引用其他文件函数的实现方法
2016/06/23 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
纯CSS3实现圆圈动态发光特效动画的示例代码
2021/03/08 HTML / CSS
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
“四风”查摆问题自我剖析材料
2014/09/27 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
vue实力踩坑之push当前页无效
2022/04/10 Vue.js
Python中tqdm的使用和例子
2022/09/23 Python