用js实现随机返回数组的一个元素

复制代码 代码如下:

  <SCRIPT LANGUAGE="JavaScript">

  <!--

  var test = ["aa","bb","cc","dd","ee"];

  document.write(test[Math.floor(Math.random()*test.length)]);

  setInterval("location.reload()",1000);

  //-->

  </SCRIPT>

  这是个奇妙的方法。适合做标题性质文字的随机轮换显示。

  

  有两种不同的方式实现:

  一、随机取单个,二、让整个数组随机排序

  注意:[ ] 符号在javascript中定义一个数组,{ } 则定义一个对象

  随机取得数组里面的某一个:

  

复制代码 代码如下:

  <script type="text/javascript">

  //随机取得数组中的一个

  var Arr = ["a","b","c","d"];

  var n = Math.floor(Math.random() * Arr.length + 1)-1;

  alert(Arr[n]);

  </script>

  随机排序整个数组Array:

  

复制代码 代码如下:

  <script type="text/javascript">

  //随机排序整个数组

  var Arr1=[1,2,3,4,5,6,7,8,9,10,22,33,55,77,88,99];

  Arr1.sort(function(){return Math.random()>0.5?-1:1;});

  alert(Arr1);

  </script>

  ==========================================

  PHP 里面有个非常方便的打乱数组的函数 shuffle() ,这个功能在许多情况下都会用到,但 javascript 的数组却没有这个方法,没有不要紧,可以扩展一个,自己动手,丰衣足食嘛。

  

复制代码 代码如下:

  <script type="text/javascript">

  //<![CDATA[

  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><br>shuffle(A) = ", shuffle(a));

  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("<br>A.shuffle() = ", a.shuffle());

  //]]>

  </script>