jQuery两列(一维)数组?

时间:2012-07-07 21:06:06

标签: javascript jquery arrays

我有一个简单的一维数组,但我想使用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搜索,但许多其他方法都涉及多维数组。

非常感谢您提前提供帮助。

编辑:现在它只是一个很长的列表:

第一条
第二条
第三条
....

但我想实现这个目标:
enter image description here

1 个答案:

答案 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个块​​。该数组可以具有oddeven长度,并且必须区分这两种情况。由于不可能将奇数长度数组划分为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()函数完成。