我有一个简单的一维数组,但我想使用jQuery将长列表拆分为两列。我怎样才能做到这一点?
var articles = ['article10','article9','article8','article7','article6','article5','article4','article3', 'article2', 'article1'];
for ( var articCounter = articles.length; articCounter > 0; articCounter--) {
document.write('<a href="../articles/' + articles[articCounter-1] + '.pdf" > ' + articles[articCounter-1] + '</a></br>');
} // end for
我不想为两个不同的浮点数创建两个不同的数组.... 我已经多次使用Google搜索,但许多其他方法都涉及多维数组。
非常感谢您提前提供帮助。
编辑:现在它只是一个很长的列表:
第一条
第二条
第三条
....
但我想实现这个目标:
答案 0 :(得分:3)
这会将您的数组拆分为2个数组:
var articles = ["article1", "article2", "article3", "article4", "article5", "article6", "article7", "article8", "article9", "article10"];
var separatorIndex = articles.length & 0x1 ? (articles.length+1)/2 : articles.length/2;
var firstChunk = articles.slice(0,separatorIndex);
//["article1", "article2", "article3", "article4", "article5"]
var secondChunk = articles.slice(separatorIndex,articles.length);
//["article6", "article7", "article8", "article9", "article10"]
然后你可以在任何地方和/或你想要的地方使用它们。
说明的
第二行找到锚索引(别名 - &gt;中间分割索引),通过该索引将数组划分为2个块。该数组可以具有odd
和even
长度,并且必须区分这两种情况。由于不可能将奇数长度数组划分为2个相等部分,因此必须以这种方式进行划分,即第一个块将具有1个元素更多或更少,比第二个chunk.Here,我已经实现了第一个案例,也就是说,第一个块将比第二个块多1个元素。以下是不同情况的示例:
total length | 1st (length) | 2st (length) | separatorIndex
10 0-4 (5) 5-9 (5) 5
11 0-5 (6) 6-10 (5) 6
12 0-5 (6) 0-11 (6) 6
在表格中, number
- number
语法相应地显示了数组中的开始和结束索引。除法由.slice()函数完成。