1

有人可以解释为什么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;
  }
}

经过一些测试(感谢评论)我发现harvesters[i]没有返回我期望的收割机对象....每个harvester显然都是一个实例

function wrapperValue() {
      return baseWrapperValue(this.__wrapped__, this.__actions__);
    }

当我尝试将其输出到控制台时。为什么这不是蠕变物体?

4

1 回答 1

2

您当前正在使用 lodash 的链式序列功能,以便提取您需要调用的未包装值.value()

您的代码必须看起来像这样:

const harvesters = _(Game.creeps).filter(
  {
    memory: {
      role: 'harvester'
    }
  }
).value();

或者,您可以_.filter直接使用:

const harvesters = _.filter(Game.creeps, {
  memory: {
    role: 'harvester'
  }
});
于 2017-05-05T07:36:35.277 回答