<html>
<head>
<title>test</title>
</head>
<body>
<script>
function genSN() {
var str = "", tmp, i, j;
var a = new Array(22), b = new Array(5);
for (i=0; i<a.length; i++)
a[i] = (i<9?"0":"") + (i + 1);

for (i=0; i<5; i++) {
j = Math.floor(Math.random() * (a.length - i));
b[i] = a[j];
a[j] = a[a.length - i - 1];
}

for (i=0; i<b.length - 1; i++)
for (j = i + 1; j < b.length; j++)
if (b[i]>b[j]) {
tmp = b[i];
b[i] = b[j];
b[j] = tmp;
};

for (i=0; i<b.length; i++)
str += b[i];

return str;
}for (var i=0; i<5; i++)
alert(genSN());
</script>
</body>
</html>

解决方案 »

  1.   

    <html>
    <head>
    <title>test</title>
    </head>
    <body>
    <script>
    function genSN() {
    var str = "", tmp, i, j;
    var a = new Array(22), b = new Array(5);
    for (i=0; i<a.length; i++)
    a[i] = (i<9?"0":"") + (i + 1);

    for (i=0; i<b.length; i++) {
    j = Math.floor(Math.random() * (a.length - i));
    b[i] = a[j];
    a[j] = a[a.length - i - 1];
    }

    for (i=0; i<b.length - 1; i++)
    for (j = i + 1; j < b.length; j++)
    if (b[i]>b[j]) {
    tmp = b[i];
    b[i] = b[j];
    b[j] = tmp;
    };

    for (i=0; i<b.length; i++)
    str += b[i];

    return str;
    }for (var i=0; i<5; i++)
    alert(genSN());
    </script>
    </body>
    </html>
      

  2.   

    <script language=javascript>
    var a=new Array()
    var result=new Array();
    for(var i=1;i<23;i++)
    {
    a.push(((i<10)?("0"+i):i))
    }
    var k=23;
    for(var j=0;j<5;j++)
    {
    k=k-1
    temp=Math.floor(Math.random()*k)
    result.push(a.slice(temp,parseInt(temp)+1))
    tempa=a.slice(0,temp+parseInt(1))
    tempb=a.slice(temp+parseInt(1))
    tempa.pop();
    a=tempa.concat(tempb)
    }
    result.sort();
    alert(result)
    </script>
      

  3.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>JK:支持民族工业,尽量少买X货</title>
    </head><body>
    <pre>
    洗牌算法:
    部分代码来自:
    http://community.csdn.net/Expert/topic/3858/3858964.xml?temp=.5909693
    fason的回贴。</pre><script language="JavaScript">
    <!--function getRandomArray(m,n)   //得到m张牌里的n张牌 (m>=n>0)
    {
    if(n==null || n==m )
    return getRandomPlayCard(m);
    var array1=new Array(m);
    for(var i=0;i<m;i++)
    array1[i]=i;
    var m2=m-0.00001;
    for(var i=0;i<n;i++)
    {
    var rnd=Math.floor(Math.random()*m2);
    var swap=array1[i];array1[i]=array1[rnd];array1[rnd]=swap;
    }
    return(array1.slice(0,n));
    }
    function getRandomPlayCard(m) //洗牌
    {
    var array1=new Array(m);
    for(var i=0;i<m;i++){
    var rnd=Math.floor(Math.random()*(i+0.99999))
    array1[i]=array1[rnd];
    array1[rnd]=i;
    }
    return array1;
    }
    document.write(getRandomPlayCard(100)+"<br><br>"+getRandomArray(100,5));--> 
    </script></body>
    </html>
      

  4.   

    push, sort,这两个方法以前没怎么用过,呵呵,简化了好多
    <script>
    function genSN(m, n) {
    var i, j, a = new Array(m), b = new Array();
    for (i=0; i<a.length; i++)
    a[i] = (i<9?"0":"") + (i + 1);

    for (i=0; i<n; i++) {
    j = Math.floor(Math.random() * (a.length - i));
    b.push(a[j]);
    a[j] = a[a.length - i - 1];
    } return b.sort().toString().replace(/,/g, "");
    }for (var i=0; i<5; i++)
    alert(genSN(22, 5));
    </script>
      

  5.   

    还有join.......
    <script>
    function genSN(m, n) {
    var str = "", tmp, i, j;
    var a = new Array(m), b = new Array();
    for (i=0; i<a.length; i++)
    a[i] = (i<9?"0":"") + (i + 1);

    for (i=0; i<n; i++) {
    j = Math.floor(Math.random() * (a.length - i));
    b.push(a[j]);
    a[j] = a[a.length - i - 1];
    } return b.sort().join("");
    }for (var i=0; i<5; i++)
    alert(genSN(22, 5));
    </script>