【发布时间】:2017-05-05 15:36:35
【问题描述】:
有人可以解释为什么harvesters[i] 在这种情况下会返回undefined 吗?我之前使用过类似的代码,没有任何问题。这是给游戏 Screeps 的。
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;
}
}
经过一些测试(感谢 cmets)我发现 harvesters[i] 没有返回我期望的收割机对象....每个 harvester 显然是
function wrapperValue() {
return baseWrapperValue(this.__wrapped__, this.__actions__);
}
当我尝试将其输出到控制台时。为什么这不是蠕变物体?
【问题讨论】:
-
.filter()不应该用函数调用吗? -
@Pointy 是的,一个决定保留哪些函数的谓词。我希望这会返回一个错误。
-
Game.creeps返回游戏中所有小兵的列表,过滤器为role: 'harvester'。对吗? -
同意一个array过滤器需要一个闭包或者函数句柄,但是这是
_( ... )的返回值的过滤器方法,大概是下划线框架。我认为这意味着它是一个集合上的过滤器,它可能会起作用。但是,如果不知道使用的框架,就很难说。
标签: javascript screeps