How to get the key of a key/value JavaScript object

javascript, jquery

Solution

If you want to get all keys, ECMAScript 5 introduced `Object.keys`. This is only supported by newer browsers but the MDC documentation provides an alternative implementation (which also uses `for...in` btw):

if(!Object.keys) Object.keys = function(o){
     if (o !== Object(o))
          throw new TypeError('Object.keys called on non-object');
     var ret=[],p;
     for(p in o) if(Object.prototype.hasOwnProperty.call(o,p)) ret.push(p);
     return ret;
}

Of course if you want both, key and value, then `for...in` is the only reasonable solution.

Problem

If I have a JS object like: ``` var foo = { 'bar' : 'baz' } ``` If I know that `foo` has that basic key/value structure, but don't know the name of the key, How can I get it? `for ... in`? `$.each()`?

Original source