Как закодировать объект key/value в javascript

var user = {};

теперь я хочу создать метод setUsers, который принимает объект пары ключ/значение и инициализирует переменную user.

setUsers = function(data) {

   // loop and init user

}

где данные:

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

Ответ 1

Остерегайтесь свойств, унаследованных от прототипа объекта (это может произойти, если вы включаете в себя какие-либо библиотеки на вашей странице, например, старые версии Prototype). Вы можете проверить это, используя метод объекта hasOwnProperty(). Как правило, это хорошая идея при использовании циклов for...in:

var user = {};

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

Ответ 2

for (var key in data) {
    alert("User " + data[key] + " is #" + key); // "User john is #234"
}

Ответ 3

Что-то вроде этого:

setUsers = function (data) {
    for (k in data) {
        user[k] = data[k];
    }
}