zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

JS数组 实现 一个 元素 返回 随机
2023-06-13 09:13:57 时间
复制代码代码如下:

<SCRIPTLANGUAGE="JavaScript">
<!--
vartest=["aa","bb","cc","dd","ee"];
document.write(test[Math.floor(Math.random()*test.length)]);
setInterval("location.reload()",1000);
//-->
</SCRIPT>

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

有两种不同的方式实现:

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

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

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

复制代码代码如下:


<scripttype="text/javascript">
//随机取得数组中的一个
varArr=["a","b","c","d"]; 
varn=Math.floor(Math.random()*Arr.length+1)-1; 
alert(Arr[n]); 
</script> 

随机排序整个数组Array:

复制代码代码如下:
<scripttype="text/javascript"> 
//随机排序整个数组
varArr1=[1,2,3,4,5,6,7,8,9,10,22,33,55,77,88,99]; 
Arr1.sort(function(){returnMath.random()>0.5?-1:1;}); 
alert(Arr1); 
</script> 

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

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

复制代码代码如下:
<scripttype="text/javascript">
//<![CDATA[
varshuffle=function(v){
for(varj,x,i=v.length;i;j=parseInt(Math.random()*i),x=v[--i],v[i]=v[j],v[j]=x);
returnv;
};
vara=[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(varj,x,i=this.length;i;j=parseInt(Math.random()*i),x=this[--i],this[i]=this[j],this[j]=x);
returnthis;
};
}
document.write("<br>A.shuffle()=",a.shuffle());
//]]>
</script>