0

私は単純な 1 次元配列を持っていますが、長いリストを jQuery を使用して 2 つの列に分割したいと考えています。どうすればこれを達成できますか?

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

2 つの異なる float div に対して 2 つの異なる配列を作成する必要はありません....これを何度もグーグル検索しましたが、他の多くの方法が多次元配列を処理します。

事前に助けてくれてありがとう。

編集: 現在、次のような 1 つの長いリストです。


第1条 第2条 第 3
条....

しかし、私はこれを達成したいと思います:
ここに画像の説明を入力

4

1 に答える 1

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"] 

次に、それらを好きな場所や方法で使用できます。

説明

2行目は、アンカーインデックス(エイリアス->分割の中間インデックス)を見つけます。これにより、配列は2つのチャンクに分割されます。配列はoddeven長さを持つことができ、これら2つの状況を区別する必要があります。奇数の長さの配列を2つの等しい部分に分割することは不可能であるため、1番目のチャンクが2番目のチャンクよりも多かれ少なかれ1つの要素を持つように分割する必要があります。ここでは、最初のケース、つまり1番目のケースを実装しました。チャンクには、2番目の要素よりも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()関数によって行われます。

于 2012-07-07T21:25:29.583 に答える