How can I implement a
ORDER BY sort1 DESC, sort2 DESC
logic in an JSON array like such:
var items = '[
{
"sort1": 1,
"sort2": 3,
"name" : "a",
},
{
"sort1": 1,
"sort2": 2,
"name" : "b",
},
{
"sort1": 2,
"sort2": 1,
"name" : "c",
}
]';
resulting in the new order :
b,a,c
You should design your sorting function accordingly:
(because
||operator has lower precedence than-one, it’s not necessary to use parenthesis here).The logic is simple: if
a.sort1 - b.sort1expression evaluates to 0 (so these properties are equal), it will proceed with evaluating||expression – and return the result ofa.sort2 - b.sort2.As a sidenote, your
itemsis actually a string literal, you have toJSON.parseto get an array: