javascript – 如何正确迭代结构

我想迭代找到的结构,但我不知道最好的方法是什么.

我试过这个:

for (var ext in creep.room.find(FIND_MY_STRUCTURES, {filter: { structureType: STRUCTURE_EXTENSION }})){
    console.log(ext.energy);
}

但它不起作用.

所以现在我正在使用一种有效的方法,但它看起来很难看:

for(var i = 0; i < creep.room.find(FIND_MY_STRUCTURES, {filter: { structureType: STRUCTURE_EXTENSION }}).length; i++) {
    var ext = creep.room.find(FIND_MY_STRUCTURES, {filter: { structureType: STRUCTURE_EXTENSION }})[i];
    console.log(ext.energy);
}

我不确定,也许这是一个与js相关的问题.我是js的全新手.你能就此提出建议吗?

解决方法:

ext包含键,而不是结果的值.

所以我所做的就是将结果移出循环并输入一个名为results的变量.那样,我有一个变量可以在循环中引用.

所以最新的是,因为代码中的ext存储了密钥,这是一个字符串类型的值.它返回字符串对象的结果,你正在做类似“key”.energy的事情并且返回值undefined,因为String对象没有这样的键.

所以下面是应该工作的代码:

var results = creep.room.find(FIND_MY_STRUCTURES, {filter: { structureType: STRUCTURE_EXTENSION }});
for (var ext in results){
    console.log(results[ext].energy);
}
上一篇:javascript – 是否可以为游戏对象分配函数钩子,例如在init,death等上运行函数?


下一篇:2021-2022-1 20211324 《 信息安全专业导论》第十一周学习总结