gpt4 book ai didi

JavaScript 按多个(数字)字段对数组进行排序

转载 作者:IT老高 更新时间:2023-10-28 12:52:41 25 4
gpt4 key购买 nike

我怎样才能实现一个

 ORDER BY sort1 DESC, sort2 DESC

JSON 数组中的逻辑如下:

    var items = '[
{
"sort1": 1,
"sort2": 3,
"name" : "a",
},
{
"sort1": 1,
"sort2": 2,
"name" : "b",
},
{
"sort1": 2,
"sort2": 1,
"name" : "c",
}
]';

导致新订单:

b,a,c

最佳答案

您应该相应地设计您的排序功能:

items.sort(function(a, b) {
return a.sort1 - b.sort1 || a.sort2 - b.sort2;
});

(因为 || 运算符的优先级低于 - 一个,所以这里不需要使用括号。

逻辑很简单:如果 a.sort1 - b.sort1 表达式的计算结果为 0(因此这些属性相等),它将继续计算 || 表达式- 并返回a.sort2 - b.sort2的结果。

作为旁注,你的 items 实际上是一个字符串文字,你必须 JSON.parse 来获取一个数组:

const itemsStr = `[{
"sort1": 1,
"sort2": 3,
"name": "a"
},
{
"sort1": 1,
"sort2": 2,
"name": "b"
},
{
"sort1": 2,
"sort2": 1,
"name": "c"
}
]`;
const items = JSON.parse(itemsStr);
items.sort((a, b) => a.sort1 - b.sort1 || a.sort2 - b.sort2);
console.log(items);

关于JavaScript 按多个(数字)字段对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13211709/

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