如何根据密钥长度对JavaScript对象进行排序

How to sort JavaScript Object based on key length

本问题已经有最佳答案,请猛点这里访问。

我需要根据密钥长度对javascript对象进行排序

因此,以下内容:

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

将成为:

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


没有类似于javascript对象属性顺序的概念,您不能对它们进行排序,然后尝试通过声明顺序来获取。因为无法保证它们的出现顺序。

来自ECMAScript 1规范

4.3.3 Object

An object is a member of the type Object. It is an unordered
collection of properties which contain primitive
values, objects, or functions. A function stored in the property of an object is called a method.

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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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
}