【发布时间】:2019-03-23 22:46:55
【问题描述】:
在我问之前;关于这个特定主题有很多讨论,其中大部分与 ES5 相关,不一定适用于 ES6。我试图得到一些澄清,也许可以帮助下一个在互联网上寻找答案的人。 这是专门针对 ES6 的。
问题:
考虑以下对象结构:
const unsorted_object = {
'C': '0003',
'D': '0004',
'A': '0001',
'B': '0002',
'F': '0005',
};
-
如何按键对 JavaScript 对象进行排序? (已回复here)
const sorted_object = {}; Object.keys(unsorted_object).sort().forEach(function(key) { sorted_object[key] = unsorted_object[key]; }); -
如何按键值对 JavaScript 对象进行排序?
编辑 #1
我可能对问题 #2 不太清楚。这个想法是通过键的值而不是键和值对 JavaScript 对象进行排序。
编辑#2
const unsorted_object = {
'0001': '13.1666',
'0002': '11.0001',
'0003': '10.6664',
'0004': '13.1666',
'0005': '7.3331',
};
输出:
'0001': '13.1666' '0004': '13.1666' '0002': '11.0001' '0003': '10.6664' '0005': '7.3331'
【问题讨论】:
-
为什么要对对象进行排序(它们在设计上是无序的)?你能解释一下你想要做什么的大局吗?
-
@JBallin 在 ES6+ 中,对象属性 是 有序的 - 它仅在 ES5 和之前它们没有定义的顺序。
-
@JBallin 我不同意。我觉得 2010 年提出的问题是在 ES5 的前提下回答的,因此不是 ES6 特有的。
-
@artomason 一些 answers 使用 ES6。如果你真的认为它不同,你应该将你的标题编辑为 ES6 特定的。
标签: javascript sorting object ecmascript-6