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

 更新时间:2014年10月11日 11:42:36   作者:Artlover  
这篇文章主要介绍了JavaScript中实现PHP的打乱数组函数shuffle实例,本文用2种方法实现了类似PHP的打乱数组函数shuffle函数,需要的朋友可以参考下

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>

相关文章

  • Next.js应用转换为TypeScript方法demo

    Next.js应用转换为TypeScript方法demo

    这篇文章主要为大家介绍了Next.js应用转换为TypeScript方法demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • js获得页面的高度和宽度的方法

    js获得页面的高度和宽度的方法

    做一个弹出dialog时用到了取父页面的宽度和高度的方法,需要的朋友可以参考下
    2014-02-02
  • JS实现样式清新的横排下拉菜单效果

    JS实现样式清新的横排下拉菜单效果

    这篇文章主要介绍了JS实现样式清新的横排下拉菜单效果,通过简单的元素遍历控制页面元素的动态切换效果,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • bootstrap日历插件datetimepicker使用方法

    bootstrap日历插件datetimepicker使用方法

    这篇文章主要为大家详细介绍了bootstrap日历datetimepicker插件的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • flv.js的具体使用教程

    flv.js的具体使用教程

    flv.js是一款优秀的开源web端flv文件播放器,flv格式目前广泛应用在直播及音视频录制领域,本文就详细的介绍一下flv.js的具体使用教程,感兴趣的可以了解一下
    2023-05-05
  • Javascript的动态增加类的实现方法

    Javascript的动态增加类的实现方法

    下面小编就为大家带来一篇Javascript的动态增加类的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • 常见的javascript跨域通信方法

    常见的javascript跨域通信方法

    这篇文章主要介绍了常见的javascript跨域通信方法
    2015-12-12
  • js null undefined 空区别说明

    js null undefined 空区别说明

    js里面这三种东西总是让人疑惑,特此整理一下
    2010-06-06
  • Asp.Net之JS生成分页条的方法

    Asp.Net之JS生成分页条的方法

    下面小编就为大家带来一篇Asp.Net之JS生成分页条的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • 如何判断鼠标是否在DIV的区域内

    如何判断鼠标是否在DIV的区域内

    通过mouseover,mouseout来触发事件,才判断鼠标是否在该区域。 但是这种方法的局限性就是,必须要触发mouseover,或mouseout,mouseleave事件才能知道
    2013-11-11

最新评论