我需要帮助来遍历玩家的对象并检查所有玩家是否准备就绪。
我有一个名为players
的javascript对象,其播放器对象包含一些属性。其中之一是ready
。我的目标是在所有玩家ready
属性为true的情况下登录控制台“现在所有玩家都准备就绪”。
players = {
vGlAIs9Nn8viAFQ4AAAA: {
playerId: 'vGlAIs9Nn8viAFQ4AAAA',
alive: true,
ready: true
},
c1Acl3kLSUuge0p4AAAB: {
playerId: 'c1Acl3kLSUuge0p4AAAB',
alive: true,
ready: false
},
'5nyDlUPtWrYg31EEAAAC': {
playerId: '5nyDlUPtWrYg31EEAAAC',
alive: true,
ready: false
}
}
答案 0 :(得分:2)
您可以使用Array.every
const players = {
vGlAIs9Nn8viAFQ4AAAA: {
playerId: 'vGlAIs9Nn8viAFQ4AAAA',
alive: true,
ready: true
},
c1Acl3kLSUuge0p4AAAB: {
playerId: 'c1Acl3kLSUuge0p4AAAB',
alive: true,
ready: false
},
'5nyDlUPtWrYg31EEAAAC': {
playerId: '5nyDlUPtWrYg31EEAAAC',
alive: true,
ready: false
}
};
const values = Object.values(players);
const isReady = values.every(item => !!item.ready);
console.log(isReady);
答案 1 :(得分:1)
这里是满足条件时返回布尔值的函数;
function isEveryoneReady (obj) {
return Object.values(obj).every(player => player.ready)
}
在下面的代码片段中查看示例:
function isEveryoneReady (obj) {
return Object.values(obj).every( player => {
return player.ready
})
}
notReadyPlayers = {
vGlAIs9Nn8viAFQ4AAAA: {
playerId: 'vGlAIs9Nn8viAFQ4AAAA',
alive: true,
ready: true
},
c1Acl3kLSUuge0p4AAAB: {
playerId: 'c1Acl3kLSUuge0p4AAAB',
alive: true,
ready: false
},
'5nyDlUPtWrYg31EEAAAC': {
playerId: '5nyDlUPtWrYg31EEAAAC',
alive: true,
ready: false
}
}
readyPlayers = {
vGlAIs9Nn8viAFQ4AAAA: {
playerId: 'vGlAIs9Nn8viAFQ4AAAA',
alive: true,
ready: true
},
c1Acl3kLSUuge0p4AAAB: {
playerId: 'c1Acl3kLSUuge0p4AAAB',
alive: true,
ready: true
},
'5nyDlUPtWrYg31EEAAAC': {
playerId: '5nyDlUPtWrYg31EEAAAC',
alive: true,
ready: true
}
}
console.log(isEveryoneReady(notReadyPlayers))
console.log(isEveryoneReady(readyPlayers))
答案 2 :(得分:0)
const players = {
vGlAIs9Nn8viAFQ4AAAA: {
playerId: 'vGlAIs9Nn8viAFQ4AAAA',
alive: true,
ready: true
},
c1Acl3kLSUuge0p4AAAB: {
playerId: 'c1Acl3kLSUuge0p4AAAB',
alive: true,
ready: false
},
'5nyDlUPtWrYg31EEAAAC': {
playerId: '5nyDlUPtWrYg31EEAAAC',
alive: true,
ready: false
}
}
if (Object.values(players).every(item => item.ready)) {
console.log('All players are ready.')
} else {
console.log('Some or all players are not yet ready');
}
答案 3 :(得分:0)
let all_ready = true;
for (const player of players) {
if (!player.ready) {
all_ready = false;
break;
}
}
if (all_ready) {
console.log("All players are now ready!");
}