2017-06-19 51 views
0

我不明白爲什麼數組方法'every'在這裏不起作用。 (上roguelike地牢履帶式遊戲工作),我有對象的這樣一個數組: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

+0

換句話說,如果ANY'newdraw'結果爲false,那麼if塊內的代碼將不會運行 –

+0

我懷疑這很簡單,因爲我沒有理解Every。 – laervonica

回答

相關問題