1
// Build structures
var structs = curRoom.find(FIND_CONSTRUCTION_SITES, {
filter: (structure) => {
return
_.filter(Memory.jobs.worker.normal,
(job) => {
return job.id == structure.id;
}).length == 0 // Test if this structure is already in the queue
&& _.filter(Game.creeps,
(creep) => {
return creep.memory.curJob != undefined && creep.memory.curJob.id == structure.id;
}).length == 0; // Test if a creep is already working on this structure
}
});
上記のコードは、0の建設サイト(テストに合格する40のうち)を返しますが、すべての建設サイトは(外側の)フィルタを通過します。私はまた、(.length == 0
で)内部のフィルターをテストしているネストされたフィルタが機能しない
:
console.log(<filter1>); // true
console.log(<filter2>); // true
console.log(<filter1>, <filter2>) // true true
console.log(<filter1> && <filter2>
は、私が行方不明です何かあるのか、私は完全に間違って何かを行っていますか?
奇妙なので、時間を節約します。私にはコードはしっかりしています。しかし、ええ、一般的に外側のフィルタの前に内側のフィルタを移動する方が良い考えです。 –