2013-08-29 46 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。