Say I create an object thus:
var myObject = {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"};
What is the best way to retrieve a list of the property names? i.e. I would like to end up with some variable ‘keys’ such that:
keys == ["ircEvent", "method", "regex"]
Advertisement
Answer
In modern browsers (IE9+, FF4+, Chrome5+, Opera12+, Safari5+) you can use the built in Object.keys method:
var keys = Object.keys(myObject);
The above has a full polyfill but a simplified version is:
var getKeys = function(obj){ var keys = []; for(var key in obj){ keys.push(key); } return keys; }
Alternatively replace var getKeys
with Object.prototype.keys
to allow you to call .keys()
on any object. Extending the prototype has some side effects and I wouldn’t recommend doing it.