如何对 JS 对象文本进行排序?
如果我有这个 JS 对象文字:
var foo = {
Sussy: 4,
Billy: 5,
Jimmy: 2,
Sally: 1
};
如何创建一个新的、排序的对象文字:
var bar = {
Sally: 1,
Jimmy: 2,
Sussy: 4,
Billy: 5
};
If I have this JS object literal:
var foo = {
Sussy: 4,
Billy: 5,
Jimmy: 2,
Sally: 1
};
How can I create a new, sorted object literal:
var bar = {
Sally: 1,
Jimmy: 2,
Sussy: 4,
Billy: 5
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
回复:如何对 JS 对象进行排序?
答案:你不能。因此,您需要更复杂的数据结构。您有很多选择:
我推荐解决方案 3,因为它使用 JS 机制来管理排序。
示例:
编辑:更新代码以修复拼写错误。谢谢你,@Martin Fido
Re: How to sort a JS Object?
Answer: You can't. So instead, you need a more sophisticated data structure. You have many options:
I recommend solution 3 since it uses the JS mechanics to manage the ordering.
Examples:
Edited: updated code to fix typo. Thank you, @Martin Fido
对象属性没有特定的顺序(顺序取决于实现),并且您无法对属性进行排序。
您必须保留一个键数组并对其进行相应的排序,例如:
现在您可以迭代数组的值并使用它们来访问对象的相应属性。
Object properties are in no specific order (the order is implementation dependent) and you cannot sort the properties.
You have to keep an array of keys and sort it accordingly, for example:
Now you can iterate over the values of the array and use them to access the corresponding property of the object.
事实证明,自 ES2015 以来,对象属性顺序是可预测的。这太棒了。
看看在这里。
Turns out object property order is predictable since ES2015. Which is amazing.
Check it out here.