gpt4 book ai didi

javascript - 如何通过两个键来排序 JSON 对象?

转载 作者:可可西里 更新时间:2023-11-01 02:49:09 26 4
gpt4 key购买 nike

我有一个 JSON 对象,我想先按一个键排序,然后按第二个键排序,类似于在 SQL 中按两列排序。这是我将拥有的 JSON 示例:

{
"GROUPID":3169675,
"LASTNAME":"Chantry"
}

我想按 GROUPID 然后按 LASTNAME 对所有结果进行排序。我已经使用 JSON 排序功能按一个键而不是多个键进行排序。

任何帮助都会很棒。

最佳答案

这是对具有多列的对象数组进行排序的通用方法:

var arr = [
{ id:5, name:"Name3" },
{ id:4, name:"Name1" },
{ id:6, name:"Name2" },
{ id:3, name:"Name2" }
],

// generic comparison function
cmp = function(x, y){
return x > y ? 1 : x < y ? -1 : 0;
};

//sort name ascending then id descending
arr.sort(function(a, b){
//note the minus before -cmp, for descending order
return cmp(
[cmp(a.name, b.name), -cmp(a.id, b.id)],
[cmp(b.name, a.name), -cmp(b.id, a.id)]
);
});

要添加其他列进行排序,您可以在数组比较中添加其他项。

arr.sort(function(a, b){
return cmp(
[cmp(a.name, b.name), -cmp(a.id, b.id), cmp(a.other, b.other), ...],
[cmp(b.name, a.name), -cmp(b.id, a.id), cmp(b.other, a.other), ...]
);
});

编辑:根据下面的@PhilipZ 评论,JS 中的数组比较将它们转换为以逗号分隔的字符串。

关于javascript - 如何通过两个键来排序 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3230028/

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