【发布时间】:2019-12-18 04:22:35
【问题描述】:
在 node.js 程序中,我想通过数组中的特定键对 JSON 对象进行排序。例如,在这个 JSON 对象中,当“trip_name”等于 CC 时,我想按“trip_miles”值升序排序,最终只输出 id。所以最终输出应该是 002、003、001。但我不确定如何进行这种分层排序。这是link to JSBin,这是 JSON 对象:
[
{
"id": "001",
"car": "Car 1",
"trips":[
{
"trip_name": "FF",
"trip_miles": 124
},
{
"trip_name": "CC",
"trip_miles": 200
},
{
"trip_name": "BB",
"trip_miles": 204
},
{
"trip_name": "DD",
"trip_miles": 209
}
]
},
{
"id": "002",
"car": "Car 2",
"trips":[
{
"trip_name": "AA",
"trip_miles": 401
},
{
"trip_name": "BB",
"trip_miles": 903
},
{
"trip_name": "CC",
"trip_miles": 21
},
{
"trip_name": "DD",
"trip_miles": 439
}
]
},
{
"id": "003",
"car": "Car 2",
"trips":[
{
"trip_name": "RR",
"trip_miles": 300
},
{
"trip_name": "QQ",
"trip_miles": 400
},
{
"trip_name": "CC",
"trip_miles": 50
},
{
"trip_name": "DD",
"trip_miles": 60
}
]
}
]
这是我尝试过的排序,但它不能正常工作:
var sortedArray = myArray.sort(function(a,b){
if (a.trips.trip_name == "CC" && b.trips.trip_name == "CC"){
return a.trips.trip_miles - b.trips.trip_miles;
}
})
console.log(sortedArray);
【问题讨论】: