Object.keys не работает?

Со следующим в памяти: (это можно скопировать / вставить прямо на вкладку Память и зафиксировать)

    {
    "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], поэтому я знаю, что она где-то существует.

Что мне не хватает? Или это просто прослушивается?

1 ответ

Woops.

Помните, что каждый тик весь сценарий повторяется.. Что я забыл.

В начале моего сценария я инициализировал Memory.q = {}; каждый тик, поэтому он очищал объект, а затем снова заполнял его, поэтому проверка не удалась. Я изменил исходный код на:

if (typeof Memory.q == "undefined") {
    Memory.q = {};
}

Ура!

Другие вопросы по тегам