javascript - 在不超过特定值的对象数组中找到最大值 - Javascript

标签 javascript arrays loops object properties

我有一个对象数组,想找到得分最高且不超过特定分数(例如 20 分)的玩家。我该怎么做?

    let playerScores = [ 
  { player: 'Dealer',
    score: 19,
    cards: 'A of ♥, 5 of ♦' },
  { player: 'Player1',
    score: 18,
    cards: '10 of ♦, 8 of ♦' },
  { player: 'Player2',
    score: 23,
    cards: '6 of ♦, 6 of ♥, J of ♠' }
    ]

console.log(playerScores)
// iterates through playerScores
for (let i in playerScores) {
    if (playerScores[i].score > 20) {
        console.log(playerScores[i].player + ' BUSTED!')
        // removes the object with a score over 21 from the array
        playerScores.splice(i,1)
    }
    return playerScores
}

最佳答案

可以先过滤数据,按分数排序,然后取第一个:

let filteredData = playerScores.filter(p=>p.score<=20).sort((a,b) => b.score-a.score);
let result = filteredData.length ? filteredData[0] : undefined;`

关于javascript - 在不超过特定值的对象数组中找到最大值 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48037904/

相关文章:

javascript - Html/Javascript/Css 如何检查输入是否为空

javascript - 在 Javascript 中计算具有动态名称的数组的总和

matlab - 一次分配多个字段的巧妙方法?

javascript - 使用 jQuery 检测选择字段的选项值的变化

javascript - 如何从父组件中的子元素获取累积高度

c - 在其他结构中重新分配数组结构

python - 来自元组的稀疏数组

c - 如何在 5 次尝试后结束 "do...while"循环?在 C 中

javascript - 难以在 Javascript 中开发独特的动态 onclick 事件

c - 如何直接分配在结构内声明的整数数组?