tags:

views:

76

answers:

3

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", ....
+4  A: 

Something like this:

setUsers = function (data) {
    for (k in data) {
        user[k] = data[k];
    }
}
Bialecki
A: 
for (var key in data) {
    alert("User " + data[key] + " is #" + key); // "User john is #234"
}
Felix
+2  A: 

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];
        }
    }
}
Tim Down