2011-08-12 7 views
4

私はjavascriptの配列を持っており、次のデータをdivに取り込みます。配列は次のようになります。Javascriptループ

var array1 = new array('abc','def', 'ghi', 'jkl','mno'); 

上記の配列の各データを保持するdivのセットを含むdivのページングを実装したいと思います。つまりdiv 1にはabcが含まれ、div 2にはdefなどが含まれます。

ページに表示するdivsの最大数を関数に送信します。私は表示されるdivのmax_numを2に設定しています。この関数は次のとおりです。

function renderPagination(pageno, max_num){ 
    for(var i=0;i< max_num; i++){ 
    } 
} 

ここでは、divのセットが移入されるループを実行する必要があります。すなわち、pagenoが '0'の場合、abc、def divsが表示されます。 pagenoが '1'の場合、ghi、jkl divがレンダリングされます。私はi = 0ではなく、他の変数に初期化する必要があると思います。あなたが私を初期化する方法を求めている場合は

答えて

0

、私はあなたが意味すると考えている:

for(var i=pageno*max_num;i< max_num; i++){ 
} 

と仮定すると、PAGENOは、テキストごとに、0から始まります。このソリューションで

0
var array1 = ['abc','def', 'ghi', 'jkl','mno']; 

function renderPagination(pageno, max_num){ 
    max_num += pageno; // max_num will be max_num + pageno 

    // make sure max_num will not go out of bounds 
    if(max_num > array1.length){ 
     max_num = array1.length; 
    } 

    for(pageno; pageno < max_num; pageno++){ 
     console.log(array1[pageno]); 
    } 
} 
renderPagination(1, 2); 

See a demo

、あなたのページが起動しますかmax_numがどうなるかに関係なく、それは常に正しいページが返され、それが配列の境界の外に出ることは決してありません。

+0

しかし2としてPAGENOを渡しにする必要があります値はghiとjklの代わりにdefとghiになります。 – Bhaskar

+0

@Bhaskar:あなたのページは '0'か'1'?私はページを '1'から始めることができるようにコードを書いています。なぜなら、これは普通のやり方だからです。 – Shef

+0

ページは0から始まる – Bhaskar

7

ここArray.Slice

function renderPagination(pageno, max_num) { 
    return array1.slice((pageno - 1) * max_num, pageno * max_num); 
} 

デモ使用してください:無関係なサイドノートではhttp://jsfiddle.net/naveen/Ctp99/

を、Array宣言はnew Array()なく new array()