views:

71

answers:

1

Say I have this:

var x = {  
          a:{a1:"z", a2:"x"},
          b:{b1:"y", b2:"w"}
}

Is there a way to iterate over x to get "a" and "b"?

I want the member name, not its content (I don't want to get {a1:"z", a2:"x"}).

Thanks

+14  A: 
var names = [];
for(var key in x) {
   if(x.hasOwnProperty(key)) {
      names.push(key);
   }
}
alert(names.join(', ')); //a, b
Jacob Relkin
+1 for `.hasOwnProperty()`!
elusive
-1 for undefined `k`!
Roatin Marth
Guys, sorry about the undefined `k` typo. I **meant** `key`. :)
Jacob Relkin