我有一个对象数组,其 struct 如下:
{
id: String,
userId: String,
distance: Double,
time: Double
}
在数组中,相同的userId
在相同的距离内可以有多个条目.例如,数组可以是:
[
{ id: "1", userId: "1", distance: 100, time: 18.7 },
{ id: "2", userId: "1", distance: 100, time: 18.5 },
{ id: "3", userId: "2", distance: 100, time: 18.2 },
{ id: "4", userId: "2", distance: 200, time: 41.0 },
]
我想对数组进行筛选和排序,以便该数组只包含每个用户特定距离的最快时间.因此,如果我想使用上面的数组来查找100次,它将简单地返回:
[
{ id: "3", userId: "2", distance: 100, time: 18.2 },
{ id: "2", userId: "1", distance: 100, time: 18.5 },
]
我知道我可以用.filter
来把它减少到.filter
次,用.sort
来安排时间,但我想不出怎么才能限制到每userId
条只有1条.