Traverse through Javascript object properties
I want to traverse through JavaScript object's property
var obj =
{
a: 'value1',
b: 'value2',
c: 'value3',
d: 'value4'
};
for (var prop in obj) {
prop = 'xxx';
}
But the above code is not working. Can you help me how to do so ?
You should check that the property belongs to the object and not a prototype.
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
obj[prop] = 'xxx';
}
}
prop
will reference the property name, not its value.
for (var prop in obj) {
obj[prop] = 'xxx';
}
Construct documentation.
Also you may want to check if the property belongs to the object using hasOwnProperty
. It may happen that someone adds properties to the prototype and those are also iterated by for ... in
.
Here is how it is done using the ES5 - Object.keys() :
Object.keys(obj).forEach(function(key, idx) {
...
});
http://jsfiddle.net/magiccrafter/bvwenh5d/
Mozilla's docs: link