this is an inefficient solution:function convert(ret)
{
 for (var i=0; i < ret.length; i++)
 {
    var s0=  ret.substring(0,i);
    var s1 = ret.charAt(i);
    var s2 = ret.substring(i+1);    var re = new RegExp(s1,"g");    ret = s0 + s1+ s2.replace(re,"");
 }
 
 return ret;
}
var s = "1122334455334455";
alert(convert(s));

解决方案 »

  1.   

    定义两个字符串old,new.    old="1122334455334455",new=""取出old中的每一个数字与new中的每一个数进行比较,如果发现old中有new中没有的字符就在new中将其字符加入.ok!
      

  2.   

    function convert(ret)
    {
        var strTemp = "";
        for (var i=0; i < ret.length; i++)
            if (strTemp.indexOf(ret.substr(i,1)) < 0)
                strTemp = strTemp + ret.substr(i,1);
        return strTemp;
    }
      

  3.   

    如果你要处理的字符串只是数字的话,这个函数效率应该很棒:)
    var a="1122334455334455";
    function convert(str)
    {
    var s=new Array();
    for (var i=0;i<str.length;i++)
    {
    t=str.charAt(i)
    s[t]=t;
    }
    return s.join("");
    }
    alert(convert(a));
      

  4.   

    <script>
    var vl="11234123dsafasdfsadf";
    var vA,vB;
    var tmp;
    vA = vl;
    vB ="";
    for(;;)
    {
    if(vA.substr(0,1)=="")break;
    tmp = vA.substr(0,1);
    vB += tmp;
    window.execScript("vA = replace(vA,tmp,'')","vbscript");
    }
    alert(vB);
    </script>
      

  5.   

    还是vb好用
    <script language=vbscript>
    function convert(vl)
    vA = vl
    vB =""
    do
    if vA ="" then exit do
    tmp = left(vA,1)
    vB = vB & tmp
    vA = replace(vA,tmp,"")
    loop
    convert = vB
    end function
    alert(convert("adfjajsdf13254215wssfd"))
    </script>
      

  6.   

    function convert(ret)
    {
        var strTemp = "";
        for (var i=0; i < ret.length; i++)
            if (strTemp.indexOf((String)(ret.charAt(i))) < 0)
                strTemp = strTemp + (String)(ret.charAt(i)); 
        return strTemp;
      

  7.   

    无为在自己的函数前注释到
    this is an inefficient solution
    也就是说虽然这个函数大家都可以实现,但是实现的是不是最优化的呢?
    if(vA.substr(0,1)=="")break;
    tmp = vA.substr(0,1);
    上面图书写简便就随便用了两个substr,是程序员应该有的习惯吗?呵呵
    我觉得这个函数的确值得大家好好考虑一下,我只是苦于没有答案所以才在这里唧唧歪歪,见笑,大家
      

  8.   

    对不起,上面两个答案我没有深思,下面的代码才是最终的代码
    只是给你一个建议
    <script language=vbscript>
    function convert(vl)
    vA = vl
    vB =""
    do
    if vA ="" then exit do
    tmp = left(vA,1)
    vB = vB & tmp
    vA = replace(vA,tmp,"")
    loop
    convert = vB
    end function
    alert(convert("adfjajsdf13254215wssfd"))
    </script> 
      

  9.   

    注意 TwoDigitMan 与 feijunjun 都是我一个人
      

  10.   

    注意 TwoDigitMan 与 feijunjun 都是我一个人 
      

  11.   

    还有,我跟你说一下,javascript与java可是两回事
    网页中的脚本代码这点差别是无碍的,不要斤斤计较哦
      

  12.   

    OK,我現在來驗証大家的結果﹐x分鐘(很快的)后給分﹗Vbscript將不進行測試﹗請原諒﹐這里是javascript的問題﹗
      

  13.   

    答案出來了﹕
    karma(无为) 的可行
    ragweed_wg(冷月一刀) 的可行
    airway(潇渺) 的數字可行﹐字符不予處理
    icystone(石冰) 的可行
    feijunjun(军仔)或TwoDigitMan(二进制先生)的回答不符合題意﹐我覺得你對接口和封裝要好好學習一下airway(潇渺) 你評論錯了﹐那是TwoDigitMan(二进制先生)的解答﹗
    spell(披着狼皮的羊)你的原理是最基礎的﹐但不能說不對﹐可是沒有解答!謝謝以上朋友給出你們的解答﹗