2013-08-29 82 views
0

我正在創建一個蹩腳的基於文本的遊戲,我希望每個盒子都能夠沒有任何東西,玩家,怪物或者荒地包裝。我有對象的數組,像這樣:使用Javascript查看其物品屬性

var squares = [ 

    square1 = { //each square with its own number 
     player:false, 
     monster:false, 
     healthPack:false 
    }, 

    square2 = { 
     player:false, 
     monster:false, 
     healthPack:false 
    } 

]; 

,如果這些中的任何一個是我把它變成真正的廣場上,我想知道如何檢查是否有已經如此。

這就是我想知道:

for (var i in sqaures[x]) { 
    if(what do i put here??? == true) return; 
} 

或是否有另一種預先寫好的方法是什麼?

+0

任何原因不格式化您的代碼? –

+0

@DmitriZaitsev這是什麼意思? –

+0

[http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks][link](http://meta.stackexchange.com/questions/22186/how- do-i-format-my-code-blocks) –

回答

0

也許這樣的幫手功能。

的Javascript

function isSquareTrue(square) { 
    var i; 

    for (i in square) { 
     if (square.hasOwnProperty(i) && square[i]) { 
      return true; 
     } 
    } 

    return false; 
} 

var squareXX = { //each square with its own number 
    player: false, 
    monster: false, 
    healthPack: false 
} 

console.log(isSquareTrue(squareXX)); 

jsfiddle

更新:對於改變的問題表明的平方成陣列

的Javascript

function anySquaresTrue(arrayOfSquares) { 
    var length, 
     index, 
     property, 
     square; 

    for (index = 0, length = arrayOfSquares.length; index < length; index += 1) { 
     square = arrayOfSquares[index]; 
     for (property in square) { 
      if (square.hasOwnProperty(property) && square[property]) { 
       return true; 
      } 
     } 
    } 

    return false; 
} 

var squares = [{ //each square with its own number 
     player: false, 
     monster: false, 
     healthPack: false 
    }, { 
     player: false, 
     monster: false, 
     healthPack: false 
    }]; 

console.log(anySquaresTrue(squares)); 

jsfiddle

+0

我該如何做一個數組? –

+0

爲什麼downvote?因爲問題改變了? – Xotic750

+0

我沒有downvote男人,你的回答很好,因爲我不清楚的第一個版本(雖然我提到了一些對象)。 –

-1

你的意思是這個嗎?

if ((player) || (monster) || (healthPack)) {... 
0
var squareXX = { //each square with its own number 
    player:false, 
    monster:false, 
    healthPack:true 
    } 
    for (key in squareXX) { 
     if (squareXX[key] == true){ 
     alert("true is a " + key); 
     } 
    } 

試試這個代碼。 應該警惕true是一個healthPack。