有一段程序要求如下:使用JavaScript 语言 求在100范围内,任意个数字内连续的数字值,比如说在100内,我想取连续5组数据,可以随机生成连续的 2,3,4,5,6 再刷新一下页面的时候,可以随机生成连续的14,15,16,17,18
或者别人想取连续的9组数据,也可以随机生成连续的 22,23,24,25,26,27,28,29,30
意思就是说:在一百内,别人想取多少个数字,取出的都是随机生成的,连续的个数的不知道使用数组,如果的实际比较好,希望大家有空交交我,看看各位写的代码有什么更容易更灵活的,一定要随机生成的,而且最好每次取出的相同的多少数的数字,不要每次的生成的数字都重复了

解决方案 »

  1.   

    <script>
    function getNumbers(n){//100内(包括100)任意取n个连续数字
    var firstMax=101-n;
    var rand=Math.random()*firstMax;
    var firstNumber=parseInt(rand);
    var arr=new Array();
    for(var i=0;i<n;i++){
    arr[i]=firstNumber;
    firstNumber++;
    }
    return arr;
    }
    alert(getNumbers(2));
    </script>
      

  2.   

    <script type="text/javascript">
    /*<![CDATA[*/
     defaultStatus = fRandomRange(0, 5, 5);
     
     function fRandomRange(iUnder, iOver, iLen)
     { // shalw.qiu code, return array; Func: fRandomBy
      if(!iOver) iOver = 100;
      if(!iUnder) iUnder = 0;
      if(!iLen) iLen = 5;
      if(iOver-iUnder<iLen) throw new Error("错误的上下限!");
      var Ar = [];
      var iRnd = 0;
      while(true)
      {
       iRnd = fRandomBy(iUnder, iOver);
       if(iOver-iRnd>=iLen)
       {
        for(var i=iRnd, j=iRnd+iLen; i<j; i++)
        {
         Ar.push(i);
        }
        return Ar;
        break;
       }
      } // end while   
     } // end function fRandomRange(iUnder, iOver, iLen) function fRandomBy(iUnder, iOver)
     {// shawl.qiu script, return Integer
      switch(arguments.length)
      {
       case 1: return parseInt(Math.random()*iOver+1);
       case 2: return parseInt(Math.random()*(iOver-iUnder+1) + iUnder);
       default: return 0;
      } // end switch
     } // end function fRandomBy
    /*]]*/
    </script>
      

  3.   

    <script language="javascript">
        var L = 5, N = Math.floor(Math.random() * 95); 
        alert(function(n,v){return(n?[v].concat(arguments.callee(n-1,v+1)):[])}(L,N));
    </script>