使用Javascript检查项目'的属性

Using Javascript to check an item's properties

本文关键字:属性 Javascript 检查 项目 使用      更新时间:2023-09-26

我正在创建一个基于蹩脚文本的游戏,我希望每个盒子上要么什么都没有,要么是玩家、怪物或健康包

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;
}

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

也许是这样的辅助函数。

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));

jsfidd

更新:对于已更改的问题,演示阵列中的正方形

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));

jsfidd

    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。

你是这个意思吗?

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