谁知道你的那位面试官说的是那种for循环,用js写了两个,php的不会
<script type="text/javascript">
//方法一
var result=[];
var i,n;
result.selMap={};for(i=0;i<5;i++){
   n=parseInt(Math.random()*22)+1;
   while(result.selMap[n]){
       n=parseInt(Math.random()*22)+1;
   }
   result.selMap[n]=n;
   result.push(n)
}
alert(result.join(","));//方法2
var i,nLen,result=[];
var aNums=[
1,2,3,4,5,6,7,8,9,10,
11,12,13,14,15,16,17,18,19,20,
21,22
];
for(i=0,nLen=aNums.length;i<5;i++){
    n=parseInt(Math.random()*nLen)+1
result.push(n);
aNums.splice(n-1,1);
nLen--;
}
alert(result.join(","));    
</script>

解决方案 »

  1.   

    思维非常的正常,也非常的好,能实现这个功能,
    但是没有创新意思,也就是是说没有达到最简单的几行代码就能实现,哈哈辛苦了老朋友:xingqiliudehuanghun 
      

  2.   

    可以用扑克的原理来做
    <script type="text/javascript">
    var aNums=[
        1,2,3,4,5,6,7,8,9,10,
        11,12,13,14,15,16,17,18,19,20,
        21,22
    ];//洗牌
    aNums.sort(function(){
        return Math.pow(-1,parseInt(Math.random()*2)+1)
    });//摸牌
    alert(aNums.slice(0,5));
    </script> 
      

  3.   

    array_rand
    (PHP 4, PHP 5)array_rand --  从数组中随机取出一个或多个单元