将给定字符串与数组 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)

}

如何比较 playersname 中的 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)
}