如何正确地迭代结构
How to iterate structures properly
我想迭代找到的结构,但我不知道哪种方法最适合。
我试过这个:
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
和 returns 值 undefined
的事情,因为字符串对象没有这样的键。
下面是应该有效的代码:
var results = creep.room.find(FIND_MY_STRUCTURES, {filter: { structureType: STRUCTURE_EXTENSION }});
for (var ext in results){
console.log(results[ext].energy);
}
别忘了您还可以使用 Array.forEach
函数和箭头函数符号!
creep.room.find(FIND_MY_STRUCTURES, { filter: { structureType: STRUCTURE_EXTENSION } })
.forEach((ext) => { console.log(ext.energy); });
我想迭代找到的结构,但我不知道哪种方法最适合。
我试过这个:
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
和 returns 值 undefined
的事情,因为字符串对象没有这样的键。
下面是应该有效的代码:
var results = creep.room.find(FIND_MY_STRUCTURES, {filter: { structureType: STRUCTURE_EXTENSION }});
for (var ext in results){
console.log(results[ext].energy);
}
别忘了您还可以使用 Array.forEach
函数和箭头函数符号!
creep.room.find(FIND_MY_STRUCTURES, { filter: { structureType: STRUCTURE_EXTENSION } })
.forEach((ext) => { console.log(ext.energy); });