Hoa Hoa - 4 months ago 12
Javascript Question

Is there a way to sort/order keys in JavaScript objects?

For example the following

var data = {
'States': ['NSW', 'VIC'],
'Countries': ['GBR', 'AUS'],
'Capitals': ['SYD', 'MEL']
}
for (var item in data) {
console.log(item);
}


prints

States
Countries
Capitals


Is there a way to sort alphabetically so that it prints

Capitals
Countries
States

Answer

Not within the object itself: the property collection of an object is unordered.

One thing you could do is use Object.keys(), and sort the Array, then iterate it.

Object.keys(data)
      .sort()
      .forEach(function(v, i) {
          console.log(v, data[v]);
       });

Patches (implementations) for browsers that do not support ECMAScript 5th edition:

Comments