Car*_*onK 2 javascript arrays object
我有一个对象数组,所有对象都具有与 isReady 相同的属性名称。我想在所有对象 isReady 属性为 true 时启动一个函数。
let players = [
0: {isReady: true},
1: {isReady: false},
2: {isReady: true}
]
Run Code Online (Sandbox Code Playgroud)
应该返回 false
let players = [
0: {isReady: true},
1: {isReady: true},
2: {isReady: true}
]
Run Code Online (Sandbox Code Playgroud)
应该返回 true
for(let i = 0; i < players.length; i++) {
if(players[i].isReady === true) {
startGame()
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试循环所有对象,但即使 1 个对象具有 true 值,if 语句也会返回 true。
您可以通过两种方式实现这一目标
1-通过使用数组内置方法 every 在检查完整数组后将返回布尔值。例子-
let players = [
{isReady: true},
{isReady: true},
{isReady: true}]
const isPlayersReady = players.every(data=> data.isReady)
if(isPlayersReady ){
startGame()
}
Run Code Online (Sandbox Code Playgroud)
2-通过使用Set数据结构
let result = players.map(a => a.isReady);
console.log(new Set(result).size === 1); // True
Run Code Online (Sandbox Code Playgroud)