str = "小王,小花,小狗,小刘,小强";请问怎样让他们随生排序生成新的 str,str里面的内容不固定长度,现在是5个人,可能会是n个人。例如生成 str = "小花,小强,小王,小狗,小刘";请问用javascript怎样实现?

解决方案 »

  1.   

    split 成数组,然后再随机组合。
      

  2.   

    嗯,主要是我不知道这个随机function如何用。思路我到是有了,随机生成数组length大小的随机数字,再组合就可以了。现在是没搞清楚,怎样生成不重复的数组大小的数字哈。
      

  3.   

    var a="小王,小花,小狗,小刘,小强".split(','),o=[],c=a.length;
    while(c)
    {
    var t=(parseInt(Math.random()*c));
    o.push(a[t]);
    a=a.slice(0,t).concat(a.slice(t+1, c));
    c--;
    }
    alert(o);
      

  4.   

    function RandomArray(arr)
    {
        var arrayLength = arr.length;
        var tmpArray1 = new Array();
        for(var i = 0; i < arrayLength; i++)
        {
            tmpArray1[i] = i;
        }
        var tmpArray2 = new Array();
        for(var i = 0; i < arrayLength; i++)
        {
            tmpArray2[i] = tmpArray1.splice(Math.floor(Math.random() * tmpArray1.length), 1);    }
        var randomArray = new Array();
        for(var i = 0; i < arrayLength; i ++)
        {
            randomArray[i] = arr[tmpArray2[i]];
        }
        return randomArray;
    }查了一下资料,找了一个现成的,将就用哈。
      

  5.   


    <html>
        <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
            <title></title>
        </head>
        <script type="text/javascript"> <!--//

    var $ = function($){return document.getElementById($);}
       ,sorte= function(){
            var obj = $('num');
    var str=obj.value;
    var arr=str.split(',');
    var i=arr.length,j=0;
    var arrResult =new Array();
    while(i>1){
    j=Math.floor(Math.random()*i);
    arrResult.push(arr[j]);
    arr.splice(j,1);
    i--;
    }
    arrResult.push(arr[0]);
    $('result').innerHTML=arrResult.join(',');
       }
    //-->
        </script>
        <body>
    <input type='text' name='num' id='num' value="小王,小花,小狗,小刘,小强" size='80' />
    <div id='result'></div>
    <input type=button id='btn' onclick='sorte()' value="click me"/>
        </body>
    </html>