gpt4 book ai didi

javascript - js根据相等列的id按不同列进行二次排序

转载 作者:行者123 更新时间:2023-12-03 12:30:59 25 4
gpt4 key购买 nike

我有一个水果采摘网站。有五名员工,一名上午类,一名下午类。

在月底查看谁是最好的员工,他们希望按照谁拥有最多(一天中的项目)进行排序。

他们想要使用的次要排序是,如果有平局,那么他们想要比较在他们一起工作的日子里谁采摘了更多的水果。

为了在数组中处理这个问题,有一个 sd-???与他们一起工作的每个不同员工的项目,SD-???是通过将两名员工的 ID 附加在一起计算出来的,因此当 sd-111222 April 和 Bruno 在同一天这样做时。谁当天选择了更多,该字段的 sd-111222 也会增加 1。

这是我到目前为止的代码 see fiddle .

<script>
var workers = [
{"id":"111","name":"April", "most":"7","sd-111222":"1","sd-111333":"2","sd-111444":"2","sd-111555":"2"},
{"id":"222","name":"Bruno", "most":"7","sd-111222":"2","sd-222333":"1","sd-222444":"2","sd-222555":"2"},
{"id":"333","name":"Carlos","most":"6","sd-111333":"1","sd-222333":"2","sd-333444":"2","sd-333555":"1"},
{"id":"444","name":"Dwayne","most":"5","sd-111444":"1","sd-222444":"1","sd-333444":"1","sd-444555":"2"},
{"id":"555","name":"Ed", "most":"5","sd-111555":"1","sd-222555":"1","sd-333555":"2","sd-444555":"1"}
];

workers.sort(function(a,b) {
return a.most == b.most ? b.id - a.id : b.most - a.most;

});
console.log(workers);
</script>

排序,然后按id排序。

我想要的是类似于下面的二级排序逻辑,但我不知道如何应用它。

如果大多数都相等

获取两个相同员工的 ID

然后寻找 sd-???包含这两个 id

并排序哪个更大。

所以在我的例子中顺序应该是

222(最多等于 111,但更高 sd-111222)

111

333

444(与 555 几乎相同,但更高 sd-444555)

555

如何在 js 中应用它?

最佳答案

我猜这可以完成工作

return (a.most == b.most)
? (b["sd-" + a.id + b.id] - a["sd-" + a.id + b.id])
: (b.most - a.most);

UPDATED FIDDLE

关于javascript - js根据相等列的id按不同列进行二次排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23933821/

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