使用Javascript检查项目的属性
我正在创建一个蹩脚的基于文本的游戏,我希望每个盒子上要么没有任何东西,要么没有玩家,要么没有怪物,要么没有石楠包。我有一个这样的对象数组:使用Javascript检查项目的属性,javascript,object,if-statement,boolean,Javascript,Object,If Statement,Boolean,我正在创建一个蹩脚的基于文本的游戏,我希望每个盒子上要么没有任何东西,要么没有玩家,要么没有怪物,要么没有石楠包。我有一个这样的对象数组: var squares = [ square1 = { //each square with its own number player:false, monster:false, healthPack:false }, square2 = { player:fals
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;
}
或者如果有其他预先编写的方式?你的意思就是这样吗
if ((player) || (monster) || (healthPack)) {...
也许是这样的辅助函数 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));
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));
在
更新:用于演示阵列中的正方形的已更改问题
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));
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));
在
试试这个代码。
应该注意的是healthPack。对于数组,我该如何做?我没有投反对票,你的回答很好,因为我的第一个版本不清楚,但我确实提到了对象数组。没问题,但有人提到了,如果他们能说出原因,我会很高兴的?无论如何,我更新了一个例子,给你一个对象数组。谢谢你的回答,我创造了这个小提琴-这是我真正想要的。回答被接受。有没有理由不格式化你的代码?@DmitriZaitsev这是什么意思?[@DmitriZaitsev抱歉,他太懒了