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

Javascript js根据相等列的id按不同列进行二次排序,javascript,jquery,arrays,sorting,Javascript,Jquery,Arrays,Sorting,我有一个水果采摘点。共有五名员工,一名为上午班,一名为下午班 在月底,查看谁是他们想要的最好的员工,并根据谁拥有最多(一天中的项目)进行排序 他们想使用的第二种方法是,如果有一个平局,那么他们想比较在他们一起工作的日子里谁摘了更多的水果 要在阵列中处理此问题,有一个sd-???每个与他们一起工作的不同员工的项目,sd-???这是通过将两名工作人员的身份证加在一起计算出来的,所以sd-111222-April和Bruno在同一天完成了这项工作。如果当天选择更多,则该字段sd-111222也会增加1

我有一个水果采摘点。共有五名员工,一名为上午班,一名为下午班

在月底,查看谁是他们想要的最好的员工,并根据谁拥有最多(一天中的项目)进行排序

他们想使用的第二种方法是,如果有一个平局,那么他们想比较在他们一起工作的日子里谁摘了更多的水果

要在阵列中处理此问题,有一个sd-???每个与他们一起工作的不同员工的项目,sd-???这是通过将两名工作人员的身份证加在一起计算出来的,所以sd-111222-April和Bruno在同一天完成了这项工作。如果当天选择更多,则该字段sd-111222也会增加1

这是我目前掌握的代码


var工人=[
{“id”:“111”,“name”:“April”,“most”:“7”,“sd-111222”:“1”,“sd-111333”:“2”,“sd-111444”:“2”,“sd-111555”:“2”},
{“id”:“222”,“名称”:“布鲁诺”,“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”,“名称”:“Dwayne”,“most”:“5”,“sd-111444”:“1”,“sd-222444”:“1”,“sd-333444”:“1”,“sd-44555”:“2”},
{“id”:“555”,“名称”:“Ed”,“most”:“5”,“sd-111555”:“1”,“sd-222555”:“1”,“sd-333555”:“2”,“sd-444555”:“1”}
];
工人分类(功能(a、b){
返回a.most==b.most?b.id-a.id:b.most-a.most;
});
控制台日志(工人);
它按多数排序,然后按id排序

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

如果大多数是相等的

获取两个相等工作人员的id

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

和排序哪个更大

在我的例子中,顺序应该是

222(与111相当,但高于sd-111222)

111

333

444(大部分与555相同,但sd-4455更高)

555


我如何在js中应用它呢?

我想这就可以了

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

我做了一些进一步的测试,发现这在IE和Safari中似乎不起作用,并发布了另一个问题,如果您知道这里的任何信息?
return (a.most == b.most)
    ? (b["sd-" + a.id + b.id] - a["sd-" + a.id + b.id])
    : (b.most - a.most);