Search code examples
javascriptecmascript-5

Get array of object's keys


I would like to get the keys of a JavaScript object as an array, either in jQuery or pure JavaScript.

Is there a less verbose way than this?

var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [];
for (var key in foo) {
    keys.push(key);
}

Solution

  • Use Object.keys:

    var foo = {
      'alpha': 'puffin',
      'beta': 'beagle'
    };
    
    var keys = Object.keys(foo);
    console.log(keys) // ['alpha', 'beta'] 
    // (or maybe some other order, keys are unordered).

    This is an ES5 feature. This means it works in all modern browsers but will not work in legacy browsers.

    The ES5-shim has a implementation of Object.keys you can steal