当前位置: 首页 > 编程笔记 >

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

程智明
2023-03-14
本文向大家介绍JavaScript中实现PHP的打乱数组函数shuffle实例,包括了JavaScript中实现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>

 类似资料:
  • 本文向大家介绍JavaScript中实现最高效的数组乱序方法,包括了JavaScript中实现最高效的数组乱序方法的使用技巧和注意事项,需要的朋友参考一下 数组乱序的意思是,把数组内的所有元素排列顺序打乱。 常用的办法是给数组原生的sort方法传入一个函数,此函数随机返回1或-1,达到随机排列数组元素的目的。 这种方法虽直观,但效率并不高,经我测试,打乱10000个元素的数组,所用时间大概在35m

  • 本文向大家介绍用JavaScript实现PHP的urlencode与urldecode函数,包括了用JavaScript实现PHP的urlencode与urldecode函数的使用技巧和注意事项,需要的朋友参考一下 很多朋友说JavaScript的decodeURI函数也可以实现,但有bug所有呢,下面看下下面的函数,经过测试使用暂时没什么问题,我在之前的文章说过,这个和php的urldecode

  • 本文向大家介绍JavaScript实现的in_array函数,包括了JavaScript实现的in_array函数的使用技巧和注意事项,需要的朋友参考一下 在JS中要判断一个值是否在数组中并没有函数直接使用,如PHP中就有in_array()这个函数。但我们可以写一个类似in_array()函数来判断是一个值否在函数中。 如果传入的不是数组则会抛出异常   直接报错:

  • 本文向大家介绍php实现的ping端口函数实例,包括了php实现的ping端口函数实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现的ping端口函数。分享给大家供大家参考。 具体实现代码如下: 希望本文所述对大家的PHP程序设计有所帮助。

  • 本文向大家介绍PHP实现的oracle分页函数实例,包括了PHP实现的oracle分页函数实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现的oracle分页函数。分享给大家供大家参考,具体如下: mysql有limit,分页的时候,我们可以用limit 30,40,而oracle没有limit,用其他的方法来代替--rownum. 一、底层方法 主要二个方法我写一点注释 二、

  • 本文向大家介绍PHP中的数组处理函数实例总结,包括了PHP中的数组处理函数实例总结的使用技巧和注意事项,需要的朋友参考一下 本文实例总结了PHP中的数组处理函数。分享给大家供大家参考,具体如下: 希望本文所述对大家PHP程序设计有所帮助。