2017-10-17 113 views
-2

我需要根据密钥长度如何基于密钥的长度

因此JavaScript对象进行排序如下排序JavaScript对象:

{ 'b' : 'asdsad', 'bbb' : 'masdas', 'bb' : 'dsfdsfsdf' } 

将成为:

{ 'b' : 'dsfdsfsdf', 'bb' : 'dsfdsfsdf', 'bbb' : 'masdas' } 

回答

4

没有例如Javascript对象属性的顺序等概念,则无法对它们进行排序,然后尝试通过声明顺序来获取它们。因为不能保证它们出现的顺序。

EcmaScript 1说明书

4.3.3对象

一个目的是对象的类型的成员。它是一个无序 属性集合它包含原始值 值,对象或函数。存储在对象属性中的函数称为方法。

如果您需要排序,查找数组可能会很有用。

+0

或'Map's! https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map – Walk

+1

@Walk你也不能对它们进行排序。迭代插入顺序对于某些算法是一个有用的属性,但它远离索引访问。 – Bergi

1
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 
}