不熟悉JavaScript,我想我需要一个循环来实现这个。。。。。?

不熟悉JavaScript,我想我需要一个循环来实现这个。。。。。?,javascript,arrays,loops,for-loop,innerhtml,Javascript,Arrays,Loops,For Loop,Innerhtml,我有一个180个字符的数字串,需要分成6组,分成2个字符的数字,然后按升序排序 我已经这样做了,但它看起来很脏,而且随着我对JavaScript理解的逐步提高,我非常确信,一个整洁的小循环将为我节省大量的重复 <script type="text/javascript"> var ticketString = "01172247520436536070263749748123345575830215405888192844678906124150732433487684

我有一个180个字符的数字串,需要分成6组,分成2个字符的数字,然后按升序排序

我已经这样做了,但它看起来很脏,而且随着我对JavaScript理解的逐步提高,我非常确信,一个整洁的小循环将为我节省大量的重复

    <script type="text/javascript">

var ticketString =   "011722475204365360702637497481233455758302154058881928446789061241507324334876840738576186051132437816395663800818206590104559628214294664710935667287132130687703253151692742547985".match(/.{1,2}/g);

var groupa = ticketString.slice (0,15);

groupa.sort();

var groupb = ticketString.slice (15,30);

groupb.sort();

var groupc = ticketString.slice (30,45);

groupc.sort();

var groupd = ticketString.slice(45,60);

groupd.sort();

var groupe = ticketString.slice(60,75);

groupe.sort();

var groupf = ticketString.slice(75,90);

groupf.sort();

function displayArray () {

document.getElementById('ticketOne').innerHTML = groupa;

document.getElementById('ticketTwo').innerHTML = groupb;

document.getElementById('ticketThree').innerHTML = groupc;

document.getElementById('ticketFour').innerHTML = groupd;

document.getElementById('ticketFive').innerHTML = groupe;

document.getElementById('ticketSix').innerHTML = groupf;

}

var ticketString=“01172475204365360702637497481233455758302154058881928446789061241507324334876840738576186051132437816395638008182065901045596282142494664710935667287132130687703251692747985”。匹配(/。{1,2}/g);
var groupa=ticketString.slice(0,15);
groupa.sort();
var groupb=ticketString.slice(15,30);
groupb.sort();
var groupc=ticketString.slice(30,45);
groupc.sort();
var groupd=票券字符串切片(45,60);
groupd.sort();
var groupe=票券字符串切片(60,75);
groupe.sort();
var groupf=票证字符串切片(75,90);
groupf.sort();
函数displayArray(){
document.getElementById('ticketOne')。innerHTML=groupa;
document.getElementById('ticketTwo')。innerHTML=groupb;
document.getElementById('ticketThree')。innerHTML=groupc;
document.getElementById('ticketFour')。innerHTML=groupd;
document.getElementById('ticketFive')。innerHTML=groupe;
document.getElementById('ticketSix')。innerHTML=groupf;
}


现在,输出被放在段落中,但我知道这可能比我现有的方式更容易做到。函数displayArray将加载正文标记。

如果您可以将元素从
ticketOne
ticketTwo
等重命名为
ticket1
ticket2
等:

<script type="text/javascript">

 var ticketString = "011722475204365360702637497481233455758302154058881928446789061241507324334876840738576186051132437816395663800818206590104559628214294664710935667287132130687703253151692742547985".match(/.{1,2}/g);
 for (var i=0; i<ticketString.length/15; i++) {
     var group = ticketString.slice(i*15, i*15+15);
     group.sort();
     document.getElementById('ticket'+(i+1)).innerHTML = group;
 }
 </script>

var ticketString=“01172475204365360702637497481233455758302154058881928446789061241507324334876840738576186051132437816395638008182065901045596282142494664710935667287132130687703251692747985”。匹配(/。{1,2}/g);
对于(var i=0;i您可以将其减少为:

var groupArray = [];
    for(var i=0;i<100;i+=15){
    groupArray.push(ticketString.slice (i,15+i));
        groupArray[groupArray.length-1].sort();
    }
var-groupArray=[];

对于(var i=0;i您可以这样做,如果您将“ticket”id更改为通用的“ticket”类

var ticketString=“0117247520436560702637497481233455758302154058881928446789061241507324334876840738576186051132437816395638008182065901045596282142946464710935667287132130687703251692747985”。匹配(/。{1,2}/g);
var tickelm=document.querySelectorAll('.ticket');
var strPoint=0;
用于(Tickem中的var i)
{
var grp=ticketString.slice(strPoint,(strPoint+=15));
grp.sort();
tickelm[i].innerText=grp.join(“”);
}
这款紧凑型怎么样:


因此,以下是我认为最好的解决方案:

var ticketString =   "011722475204365360702637497481233455758302154058881928446789061241507324334876840738576186051132437816395663800818206590104559628214294664710935667287132130687703253151692742547985".match(/.{1,2}/g);

var group = [];
for (var i = 0; i < 180 / 15 / 2; i++) {
    group[i] = ticketString.slice(i * 15, (i + 1) * 15);
    group[i].sort();

    document.getElementById('ticket[' + i + ']').innerHTML = group[i];
}
var ticketString=“0117247520436560702637497481233455758302154058881928446789061241507324334876840738576186051132437816395638008182065901045596282142946464710935667287132130687703251692747985”。匹配(/。{1,2}/g);
var组=[];
对于(变量i=0;i<180/15/2;i++){
组[i]=票券串切片(i*15,(i+1)*15);
组[i].sort();
document.getElementById('ticket['+i+']')。innerHTML=group[i];
}
我在这里做的是创建了一个名为group的本地数组,与使用“group1”或“ticketFirst”这样的名称相比,它在循环中更容易处理

在那之后,我几乎和你做的一样,但是因为我使用了for循环,所以我能够显著地缩短它

我之所以使用I<180/15/2,是因为您将它们配对在2个字符包中。对于(var I=0;I<180/15/2;I++),您当然必须具有如下HTML:

for (var i = 0; i < 180 / 15 / 2; i++)
<body>
    <p id="ticket[0]"></p>
    <p id="ticket[1]"></p>
    <p id="ticket[2]"></p>
    <p id="ticket[3]"></p>
    <p id="ticket[4]"></p>
    <p id="ticket[5]"></p>
</body>


var ticketString=“01172475204365360702637497481233455758302154058881928446789061241507324334876840738576186051132437816395638008182065901045596282142494664710935667287132130687703251692747985”。匹配(/。{1,2}/g);
函数loadTickets(){
var票证=[];
对于(变量i=0;i

把它修好了,@Quikers-竖起大拇指;因为这是我的想法-把.sort()函数带到票证中[I]变量进行微调,并根据数组的数量,我动态创建了6个表,其中包含字符串。我必须开发表并进行设置,但我现在已经基本完成了。感谢您的帮助。

所以您需要将180个字符分成6组,每组15 x 2位数字,然后对组进行排序?@ZikiticketString是一个由两位数字组成的数组。切片一个数组会返回一个数组,因此对任何组对象进行排序都不会引起问题。您好,是的,将180个字符分成6组2位数字,然后按升序进行排序。上面的代码非常重复,所以只需轻轻推动我的逻辑就可以了。上面的代码非常有用6行数字,但这是非常基本的,我知道有更好的方法。谢谢各位。嗨,谢谢你们的建议,我已经遵循了这个过程,但我在HTML票证段落中没有收到任何内容。控制台显示为“null”.你能提出什么建议?你仔细检查了变量名称吗?你是从我的复制粘贴它还是调整到你的?嗨,我已经采取了你的流程,并将其调整到我正在使用的变量,或者更适合我正在编程的变量。票证的变量使用[i];未被拾取。我检查控制台,它的读数为:Uncaught TypeError:无法设置Null的属性'innerHTML'。我还将180/15/2调整为ticketString.length/15/2“我还有一个快速问题,var
<body>
    <p id="ticket[0]"></p>
    <p id="ticket[1]"></p>
    <p id="ticket[2]"></p>
    <p id="ticket[3]"></p>
    <p id="ticket[4]"></p>
    <p id="ticket[5]"></p>
</body>
 <script>

 var ticketString ="011722475204365360702637497481233455758302154058881928446789061241507324334876840738576186051132437816395663800818206590104559628214294664710935667287132130687703253151692742547985".match(/.{1,2}/g);

 function loadTickets () {

 var ticket = [];

 for (var i = 0; i < ticketString.length / 15; i++) {

 ticket[i] = ticketString.slice(i * 15, (i + 1) * 15).sort();

 var tableCre = document.createElement("TABLE");

 tableCre.setAttribute("id","ticketTable" + i)

 document.body.appendChild(tableCre);

 document.getElementById('ticketTable' + i).innerHTML = ticket[i];

 }

 console.log(ticketString);

 console.log(ticket);

 };

</script>