js数组中如何随机取出一个值,多种实现方法

  • 内容
  • 相关

有两种不同的方式实现:


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


注意:[ ] 符号在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>


本文标签:

版权声明:若无特殊注明,本文皆为《鬼少》原创,转载请保留文章出处。

本文链接:js数组中如何随机取出一个值,多种实现方法 - http://tv1314.com/post-239.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

00:00 / 00:00
顺序播放