ここで配列メソッド 'every'がなぜ機能しないのか分かりません。なぜJavaScriptではないすべてのメソッドが機能していますか?
{
x: newrm.x,
y: newrm.y + 10,
w: newrm.w,
h: newrm.h,
centerx: newrm.centerx,
centery: newrm.centery + 10
}
私がやろうとしているすべてがこの新しい配列内の各要素には、以下の試験に合格するかどうかのテストである(これが防止される:(。ローグライクダンジョンクローラーゲームに取り組んで) 私はそうのようなオブジェクトの配列を持っていますすべてのメソッドを介した壁を持つプレーヤーの衝突):
if (newdraw.every(isWithin)) {
ctx2.clearRect(0, 0, width, height);
this.setState({ dungeon: newdraw });
}
function isWithin(obj) {
console.log('this is the obj and this is the player', obj, player);
return obj.x < player.x + player.w && obj.x + obj.w > player.x && obj.y < player.y + player.h && obj.h + obj.y > player.y;
}
は、2つのオブジェクトの合計だけがコンソールに記録されているとして、すべての要素が、確認されていないようです。
'.every()'メソッドは、条件に合致しない要素が見つかるとすぐに反復処理を停止します。 – nnnnnn
つまり、ANYのnewdrawがfalseになると、ifブロック内のコードは実行されません –
私はEveryについて把握できなかったような単純なものだと思っていました。 – laervonica