0

アプリケーション start に次のグローバル変数がある場合:

events = [];

次に、次の簡略化されたコード スニペットを使用して ajax で何かを取得するとします。

events[0] = [];

setTimeout(function fetchEventsThisWeek(){

    $.ajax({
      url: '/event/getEventsBetweenDates',
      type: 'POST',
      data : { from_date : currentweek.from_date.toString("yyyy-MM-d") , to_date :  currentweek.to_date.toString("yyyy-MM-d"), limit : limit, offset : offset },
      success: function(data) {
            jQuery.each(data, function(index){
                events[0].push(data[index]['attributes']);
            });




            offset = offset + limit;
            entry_count = entry_count + data.length;

            if(data.length < limit) { // We reached the end of the table so we don't need to call the function again
                renderEvents(current, offset - limit, entry_count);
                //Make sure the current next week button gets enabled because we are done with the results

            } else {
                renderEvents(current,  offset - limit, offset);
                setTimeout(fetchEventsThisWeek, 150); // There are more results, continue
            }

      }
    })
}, 150);

この再帰関数は、2 つの日付の間のすべてのイベントをフェッチし、db にレコードがなくなるまで自分自身を呼び出し続けます。私の問題は次のとおりです。

変数を使用:

events[0] = [];

配列のインデックスを週のエントリとして指定したいと考えています。したがって、特定の週を探すと、配列インデックスによって配列から既にフェッチされているすべてのエントリを取得できます。

私の問題は、より多くの週を取得したいときです。たとえば、次のようになります。

events[1] = [];// Index 1 would represent the next week

配列のサイズが拡大するだけで、すべてが最後に追加されるため、多次元配列ではなく、1 つの大きな配列があります。どうしてこれなの?そして、どうすればこの動作を達成できますか?

編集:私の質問を拡張させてください。

events 変数に json オブジェクトの配列がいくつか必要です。そう..

events[0] = [ /*contains array of json objects */];
events[1] = [ /*contains array of json objects */];
events[2] = [ /*contains array of json objects */];

各配列インデックスは 1 週間を表します。したがって、インデックス 0 は現在の週、インデックス 1 は第 1 週、インデックス 2 は第 2 週などです。私も次のことをしたいのですが、これが可能かどうかはわかりません:

events[-1] = [ /*contains array of json objects */];

インデックス -1 は過去 1 週間になります。これが可能かどうか誰かに教えてもらえますか?

4

1 に答える 1

1

あなたが探しているArray.unshift

events.unshift([]);

ドキュメンテーション

于 2012-11-30T17:59:04.443 に答える