How to loop through key/value object in Javascript?

Blankman picture Blankman · Jun 2, 2010 · Viewed 326.5k times · Source
var user = {};

now I want to create a setUsers() method that takes a key/value pair object and initializes the user variable.

setUsers = function(data) {     
   // loop and init user    
}

where data is like:

234: "john", 23421: "smith", ....

Answer

Tim Down picture Tim Down · Jun 2, 2010

Beware of properties inherited from the object's prototype (which could happen if you're including any libraries on your page, such as older versions of Prototype). You can check for this by using the object's hasOwnProperty() method. This is generally a good idea when using for...in loops:

var user = {};

function setUsers(data) {
    for (var k in data) {
        if (data.hasOwnProperty(k)) {
           user[k] = data[k];
        }
    }
}