Kann jemand erklären, warum harvesters[i]
in diesem Fall undefined
zurückgeben würde? Ich habe zuvor ähnlichen Code ohne Probleme verwendet. Dies ist für das Spiel Screeps.Iterieren durch eine gefilterte Liste gibt undefined zurück
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;
}
}
Nach einigen Tests (dank den Kommentaren) Ich fand, dass harvesters[i]
nicht die Erntemaschine Objekt kehrte ich erwartet .... jeder harvester
ist offenbar eine Instanz von
function wrapperValue() {
return baseWrapperValue(this.__wrapped__, this.__actions__);
}
, wenn ich die Ausgabe versuchen es zu trösten. Warum ist das kein schleichendes Objekt?
Ist das nicht '.filter()' soll mit einer Funktion aufgerufen werden ? – Pointy
@Pointy Ja, ein Prädikat, das entscheidet, welche Funktionen beibehalten werden. Ich würde erwarten, dass dies einen Fehler zurückgibt. – Carcigenicate
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/filter?v=example – Carcigenicate