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+CSS实现弹出全屏灰黑色透明遮罩效果的方法
Dec 20 Javascript
JavaScript中的console.log()函数详细介绍
Dec 29 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
Nov 26 Javascript
React中ES5与ES6写法的区别总结
Apr 21 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
Aug 07 Javascript
vue2.0在table中实现全选和反选的示例代码
Nov 04 Javascript
深入了解javascript 数组的sort方法
Jun 01 Javascript
vue项目base64字符串转图片的实现代码
Jul 13 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
May 23 Javascript
微信小程序自定义多列选择器使用详解
Jun 21 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
Apr 07 Javascript
Vue 中获取当前时间并实时刷新的实现代码
May 12 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 文本文件的读取效率
2012/02/10 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
php pthreads多线程的安装与使用
2016/01/19 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
thinkPHP和onethink微信支付插件分享
2019/08/11 PHP
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
如何在指定的地方插入html内容和文本内容
2013/12/23 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
2014/04/02 Javascript
Angular中的Promise对象($q介绍)
2015/03/03 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
Vue中常用rules校验规则(实例代码)
2019/11/14 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
vue实现循环滚动列表
2020/06/30 Javascript
Python学习教程之常用的内置函数大全
2017/07/14 Python
如何基于python生成list的所有的子集
2019/11/11 Python
python 类之间的参数传递方式
2019/12/20 Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
2020/01/14 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
Python如何将函数值赋给变量
2020/04/28 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
亚洲独特体验旅游专家:eOasia
2018/08/15 全球购物
Tommy Hilfiger美国官网:美国高端休闲领导品牌
2019/01/14 全球购物
2014年党员评议表自我评价
2014/09/27 职场文书
怎样写工作总结啊!
2019/06/18 职场文书
详解java如何集成swagger组件
2021/06/21 Java/Android
MySql数据库触发器使用教程
2022/06/01 MySQL