访问其定义中的数组项,相对索引

时间:2016-08-29 02:52:02

标签: javascript arrays undefined

我正在尝试定义这个数组:

Func<Task>

但是,我收到所有 postLists = [ [ [46276,76235,78128], postLists[0][0].length, 1100 ], [ [], postLists[1][0].length, 0 ] ]; 行的未定义错误。

如何访问自己定义的数组?有没有办法相对选择一个项目而不参考其整个&#34;路径&#34;就像你对文件夹做的那样? 例如,在这种情况下,类似postLists[x][0].length的内容将获得[0].length的长度,或[46276,76235,78128](父级)会选择..[1]

postLists[1]将保存数十万个整数,因此需要考虑性能 postLists[x][0]是每隔几秒钟需要访问的原始长度,由于postLists[x][1]的大小,它不能在不影响性能的情况下即时访问。
postLists[x][0]是一个跟踪(和存储)已处理项目的索引,postLists[x][2] postLists[0][2]用于跳过已处理的1100个第一项。

我在Greasemonkey脚本中使用它,postLists中子数组的原因是我打算在同时运行的多个选项卡上使用该脚本。

脚本的开头设置如下:

1100

然后,每个函数都使用window.onkeydown = function(event) { if (event.ctrlKey && event.altKey) { switch(event.keyCode) { case 49: activeList = postLists[0]; break; // 1 case 50: activeList = postLists[1]; break; // 2 case 51: activeList = postLists[2]; break; // 3 case 52: activeList = postLists[3]; break; // 4 case 70: // F toggleScript = !toggleScript; if (toggleScript) { treatItem(); favObserver.observe(topNotice, {attributes: false, childList: true, characterData: true}); } else stopObserving(true); break; } } }; 来引用选定的子数组。

1 个答案:

答案 0 :(得分:2)

您可以利用分配,产生附加变量的副作用;例如,tmp,用于分配,重新分配一个可以改变多个场合的变量

var tmp, postLists = [
  [
    tmp = [46276, 76235, 78128],
    tmp.length,
    1100
  ],
  [
    tmp = [],
    tmp.length,
    0
  ]
];
delete tmp;
console.log(postLists);