0

当我的应用程序启动时有以下全局变量:

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);

此递归函数仅获取两个日期之间的所有事件并不断调用自身,直到数据库中没有记录为止。我的问题是:

使用变量:

events[0] = [];

我想将数组的索引指定为我的星期条目。因此,如果我寻找特定的一周,我可以通过数组索引获取已经从我的数组中获取的所有条目。

我的问题是,当我想获取更多周时,例如:

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

数组只是在大小上扩展并且所有都附加到末尾,所以我有一个大数组而不是多维数组。为什么是这样?我怎样才能实现这种行为?

编辑:让我扩展我的问题。

我需要 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 回答