当我的应用程序启动时有以下全局变量:
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 周。有人可以让我知道这是否可能吗?