js代码随机返回数组中一个数字

<a href="返回的随机数.html" >
<img width="67" height="60" class="tn-img" title="演技有待进步" alt="推荐的gifs" src="tn-6760/返回的随机数.jpg" />
</a>
我想在<a></a>之间产生一个随机网页和对应的图片
下面这个代码是我自己写的,却运行的时候毫无反应,求大神改进:
var oriNum=new Array[1,2,3,4,5,6,7,8,9,10,11,12,13];
var resNum=new Array(12);
function getNum(num){
for(var i=0;i<resNum.length;i++){
var j=Math.floor(Math.random()*oriNum.length);
resNum[i]=oriNum[j];
for(var x=0;x<i;x++)
if(resNum[x]==resNum[i]){
i=i-1;
break;

}
}

return resNum[num];
}
或者赠送小弟一个完整的代码

随机那最简单的就是用随机数了。下面是简单的例子。仅供参考:
<body>
<div style="width:100px; height:100px; border:1px solid #ccc;"></div>
</body>
<script type="text/javascript">
var oDiv = document.getElementsByTagName('div')[0];
var arr = [1,2,3,4,5,6,7,8,94,1,3,4,5,6];
oDiv.onclick=function(){
oDiv.innerHTML = arr[Math.floor(Math.random()*arr.length)];
};
</script>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-25
var oriNum=new Array(1,2,3,4,5,6,7,8,9,10,11,12,13);
function getNum(num){
var getOne=Math.ceil(Math.random()*num.length);

return num[getOne];
                                       

}
alert(getNum(oriNum));

追问

怎么样从oriNum中随机抽出5个互不相同的数放在一个新的数组resNum中?

追答....你这。。。
       var oriNum=new Array(1,2,3,4,5,6,7,8,9,10,11,12,13);
function getNum(num){
var getOne=Math.floor(Math.random()*num.length);
  
return num[getOne];
                                         
                      
}
var resNum=[];
while(resNum.length<5){
var tmp=getNum(oriNum);
var flag=true;
for(var i in resNum){
    if(resNum[i]==tmp){
        
        flag=false;
    }
    
}
if(flag){
    resNum[resNum.length]=tmp;
}
}
console.log(resNum);

方法2.递归
var oriNum=new Array(1,2,3,4,5,6,7,8,9,10,11,12,13);
function getNum(num,x){
   
 var x=x||1;
var getOne=Math.floor(Math.random()*num.length);

var tmp1=[];
tmp1.push(num[getOne]);
num.splice(getOne,1);
x=x-1;
    if(x>0){
    tmp1=tmp1.concat(getNum(num,x));
    }
return tmp1;                                                        
}
var resNum=getNum(oriNum,5);
    console.log(resNum);

本回答被提问者采纳
第2个回答  2014-03-25
发电示范试点方式的方式
相似回答