gpt4 book ai didi

javascript - 使用 lodash/underscore 聚合排序限制

转载 作者:可可西里 更新时间:2023-11-01 10:03:20 24 4
gpt4 key购买 nike

我需要汇总我的数据。如果我使用 mongodb 聚合,这会很容易,但我想在客户端执行。 LoDash 或 Underscore 应该可以解决这个问题......

假设我有这个数据:

var data = [
{
"uId" : "u1",
"qId" : "q1",
"share" : 2,
"star" : 2,
"score" : 5
},
{
"uId" : "u1",
"qId" : "q2",
"share" : 2,
"star" : 2,
"score" : 5
}.
{
"uId" : "u2",
"qId" : "q1",
"share" : 2,
"star" : 2,
"score" : 5
},
{
"uId" : "u2",
"qId" : "q2",
"share" : 3,
"star" : 3,
"score" : 7
},
{
"uId" : "u3",
"qId" : "q1",
"share" : 3,
"star" : 3,
"score" : 7
},
{
"uId" : "u3",
"qId" : "q2",
"share" : 3,
"star" : 3,
"score" : 7
}
]

我需要这个结果:

result = [
{
"uId" : "u3",
"qId" : 2,
"share" : 6,
"star" : 6,
"score" : 14
},
{
"uId" : "u2",
"qId" : 2,
"share" : 5,
"star" : 5,
"score" : 12
}
]

它按最高分排序并将结果限制为仅显示 2 个结果

谢谢你...

最佳答案

您也可以在下划线中这样做。

_.sortBy(data, 'score').reverse().splice(0, 2);

虽然不确定反向的性能如何。

编辑:

没有反转就明白了:

_.sortBy(data, function (el) { return -el.score; }).splice(0, 2);

关于javascript - 使用 lodash/underscore 聚合排序限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34059706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com