Javascript将数组添加到特定索引

时间:2012-11-30 17:55:47

标签: javascript

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

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周。如果可能,有人可以告诉我吗?

1 个答案:

答案 0 :(得分:1)

您正在寻找Array.unshift

events.unshift([]);

Documentation