使用Javascript检查项目的属性

时间:2013-08-29 22:18:56

标签: javascript object if-statement boolean

我正在创建一个基于文本的蹩脚游戏,我希望每个盒子都能够拥有任何东西,玩家,怪物或健康包。我有一组像这样的对象:

var squares = [

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

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

];

如果其中任何一个在广场上我将其更改为true,我想知道如何检查是否已经为真。

这就是我想知道的:

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

或者是否有其他预先写好的方式?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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。

答案 2 :(得分:-1)

你的意思是这个吗?

if ((player) || (monster) || (healthPack)) {...