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。如果要排序,它应该是一个数组。对象的属性顺序应该无关紧要。