Javascript 基于值对对象属性排序
我有一个对象数组:Javascript 基于值对对象属性排序,javascript,Javascript,我有一个对象数组: [ { "Accept Credit Cards":"17", "Take-Out":"17", "Alcohol":"16", "Caters":"10", "Takes Reservations":"11", "Smoking":"0", "Dogs Allowed":"1", "Outdoor Seating":"12", "Coat Check":
[
{
"Accept Credit Cards":"17",
"Take-Out":"17",
"Alcohol":"16",
"Caters":"10",
"Takes Reservations":"11",
"Smoking":"0",
"Dogs Allowed":"1",
"Outdoor Seating":"12",
"Coat Check":"0",
"Waiter Service":"14",
"Wi-Fi":"10",
"Good For Groups":"16",
"Wheelchair Accessible":"13"
}
]
我想根据值对其进行排序。所以我的结果应该是:
[
{
"Accept Credit Cards":"17",
"Take-Out":"17",
"Alcohol":"16",
"Good For Groups":"16",
"Wheelchair Accessible":"13"
AND SO ON.....
}
]
我该怎么做?我试过一种。但这只是根据密钥排序。任何指针都值得赞赏。正如RyanZim在评论中提到的那样,对对象的属性进行排序并不是真正的目的。JavaScript不能保证属性的顺序,因此您不应该依赖它们的顺序。然而,您可以创建一个属性数组,并根据对象中的值对它们进行排序
const arr=[
{
“接受信用卡”:“17”,
“外卖”:“17”,
“酒精”:“16”,
“迎合”:“10”,
“接受预订”:“11”,
“吸烟”:“0”,
“允许养狗”:“1”,
“室外座位”:“12”,
“外套检查”:“0”,
“服务员服务”:“14”,
“Wi-Fi”:“10”,
“适合团体”:“16”,
“无障碍轮椅”:“13”
}
];
const sorted=Object.keys(arr[0]).sort((a,b)=>arr[0][b]-arr[0][a]);
sorted.forEach(x=>console.log(x+':'+arr[0][x])代码>使用hasOwnProperty迭代对象:对象中没有顺序,您所问的毫无意义。对对象排序的目的是什么?Javascript不关心对象属性的顺序;顺序可能因实现而异。@GetOffMyLawn不是重复的,尽管相关。我在这一点上支持@RyanZim。如果要排序,它应该是一个数组。对象的属性顺序应该无关紧要。