在内存中使用以下内容:(可以将其直接复制/粘贴到“内存”选项卡并提交)
{
"creeps": {},
"spawns": {},
"DEBUG": true,
"q": {
"[spawn Spawn1]": [
[
[
"work",
"carry",
"carry",
"move",
"move"
],
"harvester_1",
{
"type": "harvester"
}
],
[
[
"tough",
"attack",
"move",
"move"
],
"guard2",
{
"type": "guard"
}
],
[
[
"work",
"carry",
"carry",
"move",
"move"
],
"harvester_3",
{
"type": "harvester"
}
],
[
[
"ranged_attack",
"move",
"move",
"move",
"move"
],
"fighter4",
{
"type": "ranged_fighter"
}
],
[
[
"heal",
"heal",
"move",
"move",
"move"
],
"healer5",
{
"type": "healer"
}
]
]
}
}
以下代码返回0:
console.log(Object.keys(Memory.q).length);
显而易见,Memory.q实际上拥有对产卵地点的引用。
logging just(Memory.q)输出[Object object]引用,所以我知道它存在于某个地方。
我错过了什么?或者这只是故障?
答案 0 :(得分:1)
Woops。
请记住,整个脚本的每个刻度都会重新运行..我忘记了。
在我的脚本开头我正在初始化Memory.q = {};每个刻度线,所以它是清空对象,然后再次填充它,这就是检查失败的原因。我将初始代码更改为:
if (typeof Memory.q == "undefined") {
Memory.q = {};
}
干杯!