【发布时间】:2016-02-13 23:23:21
【问题描述】:
我有一个 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;
}
现在将输出放入段落中,但我知道这比我拥有它的方式更容易完成。函数 displayArray 加载了 body 标签。
【问题讨论】:
-
所以您需要将 180 个字符分成 6 组 15 x 2 位数字,然后对这些组进行排序?
-
@Ziki ticketString 是一个由两位数字组成的数组。对数组进行切片会返回一个数组,因此对任何组对象进行排序都不会导致问题。
-
你好,是的,180个字符分成6组2位数字,然后按升序排列。上面的代码真的很重,所以只需要推动我的逻辑正确。上面的工作可以分成 6 行数字,但它是基本的,我知道有更好的方法来做到这一点。谢谢大家。
标签: javascript arrays loops for-loop innerhtml