【发布时间】:2018-03-29 03:01:35
【问题描述】:
我需要根据键长度对 JavaScript 对象进行排序
因此如下:
{ 'b' : 'asdsad', 'bbb' : 'masdas', 'bb' : 'dsfdsfsdf' }
会变成:
{ 'b' : 'dsfdsfsdf', 'bb' : 'dsfdsfsdf', 'bbb' : 'masdas' }
【问题讨论】:
标签: javascript
我需要根据键长度对 JavaScript 对象进行排序
因此如下:
{ 'b' : 'asdsad', 'bbb' : 'masdas', 'bb' : 'dsfdsfsdf' }
会变成:
{ 'b' : 'dsfdsfsdf', 'bb' : 'dsfdsfsdf', 'bbb' : 'masdas' }
【问题讨论】:
标签: javascript
Javascript 对象属性没有顺序这个概念,不能排序然后尝试通过声明顺序来获取。因为无法保证它们会按什么顺序出现。
来自EcmaScript 1 规范
4.3.3 对象
对象是对象类型的成员。这是一个无序 属性集合,其中包含原语 值、对象或函数。存储在对象属性中的函数称为方法。
如果您需要排序,也许查看数组会很有用。
【讨论】:
sort他们。 Iteration-in-insertion-order 对于某些算法来说是一个有用的属性,但它远非索引访问。
function TestA() {
var a = {
'b': 'asdsad',
'bbb': 'masdas',
'bb': 'dsfdsfsdf'
}
var keyArray = Object.keys(a);
var object = {};
keyArray.sort();
keyArray.forEach(function(item) {
object[item] = a[item]
})
return object
}
【讨论】: