有人可以解释为什么harvesters[i]
在这种情况下会返回undefined
吗?我之前使用过类似的代码,没有任何问题。这是游戏爬行的。
var harvesters=_(Game.creeps).filter( { memory: { role: 'harvester' } } );
for(var i in harvesters)
{
//console.log(harvesters[i]); //this is the debug code I mention below
harvesters[i].memory.sourceid=0;
}
}
经过一些测试(由于评论),我发现
harvesters[i]
没有返回我期望的收割机对象。...每个harvester
显然是的实例。function wrapperValue() {
return baseWrapperValue(this.__wrapped__, this.__actions__);
}
当我尝试将其输出到控制台时。为什么这不是蠕变对象?
最佳答案
您当前正在使用lodash的链式序列功能,为了提取未包装的值,您需要调用.value()
。
您的代码必须看起来像这样:
const harvesters = _(Game.creeps).filter(
{
memory: {
role: 'harvester'
}
}
).value();
或者,您可以直接使用
_.filter
:const harvesters = _.filter(Game.creeps, {
memory: {
role: 'harvester'
}
});