javascript - 运行 Object.keys 后对象键的顺序不同

标签 javascript arrays sorting object

今天早上我在处理票证时遇到了最奇怪的行为。如果运行 Object.keys 后看到以下内容,按键的顺序已更改,留下 P之后F

我尝试了以下方法:

  • Object.entries - 得到与 Object.keys 相同的结果
  • For loop - 得到与 Object.keys 相同的结果
  • 我想也许 #正在放弃排序,所以我 删除它并重新运行测试。 - 得到与 Object.keys 相同的结果

我查看了 ECMAScript 规范,情况不应该如此。有什么想法可能导致这种行为吗?

enter image description here

P.S 我通过在数组上运行 .sort() 解决了这个问题,但很想知道是什么导致键乱序。

最佳答案

因此,您正在尝试将映射(无序)转换为数组(有序)。某些浏览器根据键添加到对象的顺序转储键。有些人则以其他方式进行。由于它依赖于浏览器,因此您最好的目标就是对所述列表进行排序。

我建议在将其转储到数组后,您应该.sort()按照您认为合适的方式进行排序。它接受您需要的功能。当然,它是特定于情况的,因此您可能需要利用可选的传入函数进行排序,以最适合您的用例的方式对其进行比较。由于排序的输入可以像您喜欢的那样复杂,因此您还可以使用它对所述值的内容进行排序,而不仅仅是对键进行排序。

关于javascript - 运行 Object.keys 后对象键的顺序不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58063595/

相关文章:

c - 用于对名称列表进行排序的 Perl 脚本,从 C 脚本传递的文件名,然后将排序后的列表传回

javascript - 我们可以设置javascript用javascript异步加载吗?

C 扩展整数数组

javascript - 两个显示/隐藏切换(如果单击外部 div 则隐藏它们)问题

javascript - 使用 Chart.js 和关联数组生成条形图

javascript - 合并数组内多个对象的值

java - 如何将csv文件中的某些数据添加到ArrayList

Java Comparator 使用 .reverseOrder() 但有一个内部类

javascript - 排队 YouTube 视频

javascript - Bootstrap 3 : Accordion body collapses before content is hidden