Javascript 将给定字符串与数组子属性进行比较
我正在构建一个Javascript 将给定字符串与数组子属性进行比较,javascript,arrays,include,Javascript,Arrays,Include,我正在构建一个玩家数组,当玩家中的名称属性中找不到解算器时,将添加到该数组中 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(player
玩家
数组,当玩家
中的名称
属性中找不到解算器
时,将添加到该数组中
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)
}
如何比较
玩家的解算器内部名称。我试过玩家[name]
和玩家。name
运气不好在你的其他
中,你应该有:
const newPlayer = {name: solver, points: 1};
i、 e.对象,而不是数组。这样你就有了players
数组,它总是有player
对象
现在,由于您拥有的是一个对象数组,因此需要使用类似的方法来查找与您的条件匹配的对象是否存在:
if
条件可替换为:
if (players.some(player => player.name === solver))
我刚刚看到您希望将找到的玩家的点数增加1
。在这种情况下,您应该使用而不是some
,这样您就可以访问找到的播放器并更新其points
属性。这样做:
const player = players.find(player => player.name === solver);
if (player) {
player.points++;
} else {
const newPlayer = {name: solver, points: 1};
players.push(newPlayer)
}
谢谢现在剩下的唯一问题是如何在if
语句中获取现有对象的points
属性以添加point@Elitezen最近看到了问题的这一部分,更新了答案,以显示如何增加找到的玩家的点数。