通过2个属性对Javascript进行排序和筛选的数组

问题描述 投票:0回答:1

我想按日期列出得分最高的列表:

名称:玩家A |得分:2000 |日期:2020-04-15

名称:玩家B |得分:2001 |日期:2020-04-16

但是我有时得分更高,但日期更低:

名称:玩家A |得分:2000 |日期:2020-01-12

名称:玩家B |得分:2001 |日期:2019-12-20

// should only return: a and c in order.
let arr = [
{name: c, score: 6, date: 5-20-2021},
{name: b, score: 2, date: 5-20-2020},
{name: a, score: 3, date: 5-20-2019}
]
arr.sort((a, b) => (a.score > b.score) ? 1 : -1)
arr.filter((a, b) => (a.submitted > b.submitted) ? 1 : -1)
javascript arrays sorting filter
1个回答
0
投票

过滤器方法提供三个参数:

  1. 当前元素
  2. 当前元素的索引
  3. array

因此,您尝试比较已提交和未定义。如果需要从已排序的数组中获取两个元素,则可以使用splice方法

arr.sort((a, b) => b.score - a.score).splice(0, 2)
© www.soinside.com 2019 - 2024. All rights reserved.