说明规则如下:有4个位置填写数字,分别是千位、百位、十位、个位举例如下1、如果每个位置都为空(默认是0123456789)那么,会产生4位的1万组结果10000组:分别是0000、0001、0002、...9997、9998、99992、如果只填写百位1时候(其他为空)结果1000组:分别是0100、0101、0102、...9197、9198、91993、如果只填写百位1时候(其他为空)结果300组:只获取三个数字,其中某个位置用符号代表合成位一组。如#100、01#1、010#、...#197、#198、#199
上面1、2方法已经可以实现。第3种如何写呢。我目前的思路只是在第2跳结果中,再重现排序过。但是不知道如何写。希望大家帮帮忙。小弟在此感谢。

解决方案 »

  1.   

    1、这是为空的时候都为0123456789得到10000组
    var data=[];
    data[0]="0123456789";千位
    data[1]="0123456789";//百位 
    data[2]="0123456789";//十位 
    data[3]="0123456789";//个位 
    for( var a = a_s; a < data[0].length; a++ ){
       for( var b = b_s; b < data[1].length; b++ ){
          for( var c = c_s; c < data[2].length; c++ ){
       for( var d = d_s; d < data[3].length; d++ ){
               tmp = data[0][a] + data[1][b] + data[2][c] + data[3][d];
    document.write(tmp );
              }
          }
       }
    }
    2、百位的时候改成1。得到1000结果。如0100、0101、0102、...9197、9198、9199 data[1]="1";//百位 3、得到倒序方式。
    如#100、01#1、010#、...#197、#198、#199 
    data[1]="1";//百位 
      

  2.   

    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var data=[];
    data[0]="0123456789";//千位
    data[1]="1";//百位 
    data[2]="0123456789";//十位 
    data[3]="0";//个位 
    for (i=0;i<data.length ;i++ )
    {
    data[i] = data[i].split("");
    }
    var a_s=0,b_s=0,c_s=0,d_s=0,start=0;
    for( var i = 0; i < 3; i++ ){
    for( var a = a_s; a < data[0].length; a++ ){
       for( var b = b_s; b < data[1].length; b++ ){
      for( var c = c_s; c < data[2].length; c++ ){
       for( var d = d_s; d < data[3].length; d++ ){

       tmp = data[0][a] + data[1][b] + data[2][c];
       tmp = tmp.slice(0,i)+"#"+tmp.slice(i,i+3);
    start=start+1;
    document.write(tmp+"<br>" );
     }
      }
       }
    }
    }
    document.write("<hr>"+start+"<br>" );

    //-->
    </SCRIPT>些了一个。但是效果还不能达到希望大家能帮忙看看,出来的每组百位要1的一共1000组才对。