【发布时间】:2019-12-27 14:17:07
【问题描述】:
我需要按嵌套的值对 JSON 数组进行排序。这是我正在使用的例程,它总是返回0。我要排序的字段值为advancedoptions.storeId。
orders.sort(GetSortOrder("advancedOptions.storeId"));
function GetSortOrder(prop) {
return function(a, b) {
if (a[prop] > b[prop]) {
return 1;
} else if (a[prop] < b[prop]) {
return -1;
}
return 0;
}
}
我想按 storeId 对 JSON 进行排序:
{
"orders": [
{
"orderId": 415354051,
"advancedOptions": {
"storeId": 376480
}
},
{
"orderId": 415172626,
"advancedOptions": {
"storeId": 375780
}
},
{
"orderId": 414286558,
"advancedOptions": {
"storeId": 376480
}
},
{
"orderId": 412403726,
"advancedOptions": {
"storeId": 376480
}
}
]
}
正确的排序顺序应该是:
"orderId": 415172626,
"orderId": 415354051,
"orderId": 414286558,
"orderId": 412403726,
【问题讨论】:
-
仅供参考,JSON 是一个对象的文本表示(序列化的结果)。您在这里拥有的是一个对象,如果您愿意,也可以是一个 Javascript 对象;没有 JSON 对象。
标签: javascript json sorting