If I want to enumerate the properties of an object and want to ignore prototypes, I would use:
var instance = { ... };
for (var prop in instance) {
if (instance.hasOwnProperty(prop)) {
...
}
}
What if instance
only has one property, and I want to get that property name? Is there an easier way than doing this:
var instance = { id: "foobar" };
var singleMember = (function() {
for (var prop in instance) {
if (instance.hasOwnProperty(prop)) {
return prop;
}
}
})();
Best Answer
Maybe Object.keys can work for you. If its length returns 1, you can use
yourObject[Object.keys[0]]
to get the only property of the object. The MDN-link also shows a custom function for use in environments without thekeys
method1. Code like this:1 Some older browsers don't support
Object.keys
. The MDN link supplies code to to make it work in these browsers too. See header Compatibility in the aforementioned MDN page