访问其定义中的数组项,相对索引
Access an array item in its definition, relative index
我正在尝试定义这个数组:
postLists = [
[
[46276,76235,78128],
postLists[0][0].length,
1100
], [
[],
postLists[1][0].length,
0
]
];
但是,我收到所有 postLists[x][0].length
行的未定义错误。
如何访问从自身定义的数组?有没有一种方法可以相对 select 一个项目而不引用它的整个 "path" 就像你对文件夹所做的那样?
例如,在这种情况下,[0].length
之类的内容将获得 [46276,76235,78128]
的长度,或者 ..[1]
(父级)将 select postLists[1]
.
postLists[x][0]
将容纳数十万个整数,因此需要考虑性能。
postLists[x][1]
是需要每隔几秒访问一次的原始长度,由于 postLists[x][0]
的大小,它不能在不影响性能的情况下经常访问。
postLists[x][2]
是一个索引,用于跟踪(和存储)已处理的项目,在 postLists[0][2]
中,1100
用于跳过已处理的第 1100 个项目。
我在 Greasemonkey 脚本中使用它,postLists 中的子数组的原因是我计划同时在多个选项卡上使用该脚本 运行。
脚本的开头设置如下:
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;
}
}
};
每个函数然后使用 activeList
引用 selected 子数组。
您可以使用赋值,但会产生额外变量的副作用;例如,tmp
,用于分配、重新分配一个可以改变多个场合的变量
var tmp, postLists = [
[
tmp = [46276, 76235, 78128],
tmp.length,
1100
],
[
tmp = [],
tmp.length,
0
]
];
delete tmp;
console.log(postLists);
我正在尝试定义这个数组:
postLists = [
[
[46276,76235,78128],
postLists[0][0].length,
1100
], [
[],
postLists[1][0].length,
0
]
];
但是,我收到所有 postLists[x][0].length
行的未定义错误。
如何访问从自身定义的数组?有没有一种方法可以相对 select 一个项目而不引用它的整个 "path" 就像你对文件夹所做的那样?
例如,在这种情况下,[0].length
之类的内容将获得 [46276,76235,78128]
的长度,或者 ..[1]
(父级)将 select postLists[1]
.
postLists[x][0]
将容纳数十万个整数,因此需要考虑性能。
postLists[x][1]
是需要每隔几秒访问一次的原始长度,由于 postLists[x][0]
的大小,它不能在不影响性能的情况下经常访问。
postLists[x][2]
是一个索引,用于跟踪(和存储)已处理的项目,在 postLists[0][2]
中,1100
用于跳过已处理的第 1100 个项目。
我在 Greasemonkey 脚本中使用它,postLists 中的子数组的原因是我计划同时在多个选项卡上使用该脚本 运行。
脚本的开头设置如下:
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;
}
}
};
每个函数然后使用 activeList
引用 selected 子数组。
您可以使用赋值,但会产生额外变量的副作用;例如,tmp
,用于分配、重新分配一个可以改变多个场合的变量
var tmp, postLists = [
[
tmp = [46276, 76235, 78128],
tmp.length,
1100
],
[
tmp = [],
tmp.length,
0
]
];
delete tmp;
console.log(postLists);