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