将给定字符串与数组 sub 属性 进行比较
Comparing Given String To An Array sub property
我正在构建一个 players
数组,当在 players
内的 name
属性中找不到 solver
时,该数组将被添加到
let players = []
let solver = 'Any Name Given'
// This if statement is the issue : How to check the name properties and compare to solver
// If the solver's name is already in players : add +1 point
if(players.includes(solver)){
// Give The Player +1 point
return console.log('Player Exists')
} else {
// Add The newPlayer to players with a starting point
let newPlayer = [name = solver, points = 1]
players.push(newPlayer)
}
如何比较 players
的 name
中的 solver
。我试过 players[name]
和 players.name
都没有成功
在您的 else
中,您应该拥有:
const newPlayer = {name: solver, points: 1};
即一个对象,而不是一个数组。这样你就有了 players
数组,它总是有 player
个对象
现在,由于您拥有的是一个对象数组,因此您需要使用类似 some 的方法来查找是否存在符合您条件的对象:
if
条件可以替换为:
if (players.some(player => player.name === solver))
我刚看到你想给找到的玩家增加1
的积分。在那种情况下,您应该使用 find 而不是 some
,以便您可以访问找到的播放器并更新其 points
属性。所以这样做:
const player = players.find(player => player.name === solver);
if (player) {
player.points++;
} else {
const newPlayer = {name: solver, points: 1};
players.push(newPlayer)
}
我正在构建一个 players
数组,当在 players
name
属性中找不到 solver
时,该数组将被添加到
let players = []
let solver = 'Any Name Given'
// This if statement is the issue : How to check the name properties and compare to solver
// If the solver's name is already in players : add +1 point
if(players.includes(solver)){
// Give The Player +1 point
return console.log('Player Exists')
} else {
// Add The newPlayer to players with a starting point
let newPlayer = [name = solver, points = 1]
players.push(newPlayer)
}
如何比较 players
的 name
中的 solver
。我试过 players[name]
和 players.name
都没有成功
在您的 else
中,您应该拥有:
const newPlayer = {name: solver, points: 1};
即一个对象,而不是一个数组。这样你就有了 players
数组,它总是有 player
个对象
现在,由于您拥有的是一个对象数组,因此您需要使用类似 some 的方法来查找是否存在符合您条件的对象:
if
条件可以替换为:
if (players.some(player => player.name === solver))
我刚看到你想给找到的玩家增加1
的积分。在那种情况下,您应该使用 find 而不是 some
,以便您可以访问找到的播放器并更新其 points
属性。所以这样做:
const player = players.find(player => player.name === solver);
if (player) {
player.points++;
} else {
const newPlayer = {name: solver, points: 1};
players.push(newPlayer)
}