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>

相关文章

  • 微信小程序多列选择器range-key使用详解

    微信小程序多列选择器range-key使用详解

    这篇文章主要为大家详细介绍了微信小程序多列选择器range-key的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • jQuery设置和获取select、checkbox、radio的选中值方法

    jQuery设置和获取select、checkbox、radio的选中值方法

    select、checkbox、radio是很常用的表单控件,这篇文章主要介绍了jQuery设置和获取select、checkbox、radio的选中值方法,有兴趣的可以了解一下。
    2017-01-01
  • 关于JS中的undefined与null详解

    关于JS中的undefined与null详解

    在JavaScript中,undefined和null是两个特殊的值,用于表示缺失或空值,文章通过代码示例详细介绍undefined与null作用及使用方法,感兴趣的同学可以借鉴一下
    2023-05-05
  • js实现简单商品筛选功能

    js实现简单商品筛选功能

    这篇文章主要为大家详细介绍了js实现商品筛选功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • JavaScript实现AOP详解(面向切面编程,装饰者模式)

    JavaScript实现AOP详解(面向切面编程,装饰者模式)

    下面小编就为大家分享一篇JavaScript实现AOP的方法(面向切面编程,装饰者模式),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • javascript中for...of和for..in循环的区别

    javascript中for...of和for..in循环的区别

    JS中循环语句众多,你是否也有用的时候突然不知道用哪个的经历,本文主要介绍了javascript中for...of和for..in循环的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • JavaScript中return返回多个值的三个方法实现

    JavaScript中return返回多个值的三个方法实现

    本文主要介绍了JavaScript中return返回多个值的三个方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • js实现会跳动的日历效果(完整实例)

    js实现会跳动的日历效果(完整实例)

    下面小编就为大家带来一篇js实现会跳动的日历效果(完整实例)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • JavaScript实现瀑布流布局

    JavaScript实现瀑布流布局

    这篇文章主要介绍了原生JavaScript实现瀑布流布局的相关资料,实现鼠标下拉图片自动加载效果,和百度图片效果类似,需要的朋友可以参考下
    2016-01-01
  • js点击事件的执行过程实例分析【冒泡与捕获】

    js点击事件的执行过程实例分析【冒泡与捕获】

    这篇文章主要介绍了js点击事件的执行过程,结合实例形式分析了js事件机制中的冒泡与捕获相关原理、操作技巧与注意事项,需要的朋友可以参考下
    2020-04-04

最新评论