gpt4 book ai didi

javascript - 如何在Javascript中通过多个参数对非常大的数据数组进行排序

转载 作者:行者123 更新时间:2023-11-28 11:48:21 25 4
gpt4 key购买 nike

示例:

[{id:1,name:'Jhon',age:'31',address:'XYZ',mobile:'012345678',department:3,section:2,designation:2,.............(34 Types Data)},..........(almost count in 10546)]

根据这些数据,我希望它们首先在部门中升序,然后是部分,然后是名称,然后是名称,如果有多个相同的名称,则使用 id。几乎像下面给出的序列树一样排序。

department=>
|--section=>
|----designation=>
|------name=>
|--------id=>

我已经尝试过以下一种,但顺序仍然不一样。

reurnData.sort(function(a, b) {
var pA1 = a.section;
var pA2 = b.section;
var pB1 = a.department;
var pB2 = b.department;
var pC1 = a.designation;
var pC2 = b.designation;
var pD1 = a.name;
var pD2 = b.name;
var pE1 = a.id;
var pE2 = b.id;

if (pA1 < pA2) return -1;
if (pA1 > pA2) return 1;
if (pB1 < pB2) return -1;
if (pB1 > pB2) return 1;
if (pC1 < pC2) return -1;
if (pC1 > pC2) return 1;
if (pD1 < pD2) return -1;
if (pD1 > pD2) return 1;
if (pE1 < pE2) return -1;
if (pE1 > pE2) return 1;
return 0;
});

最佳答案

您可以链接整个排序标准。

它会遍历增量,直到找到一个不为零的增量。然后根据 Array#sort 的需要返回比较的差异。 .

array.sort(function (a, b) {
return (
a.department - b.department ||
a.section - b.section ||
a.designation - b.designation ||
a.name.localeCompare(b.name) ||
a.id - b.id
);
});

关于javascript - 如何在Javascript中通过多个参数对非常大的数据数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42872483/

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