web-dev-qa-db-ja.com

Javascriptでキー/値オブジェクトをループする方法は?

var user = {};

ここで、キー/値ペアオブジェクトを受け取り、user変数を初期化するsetUsers()メソッドを作成します。

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

データは次のようなものです:

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

オブジェクトのプロトタイプから継承されたプロパティに注意してください(Prototypeの古いバージョンなど、ページにライブラリを含める場合に発生する可能性があります)。これを確認するには、オブジェクトのhasOwnProperty()メソッドを使用します。 for...inループを使用する場合、これは一般的に良い考えです。

var user = {};

function setUsers(data) {
    for (var k in data) {
        if (data.hasOwnProperty(k)) {
           user[k] = data[k];
        }
    }
}
182
Tim Down
for (var key in data) {
    alert("User " + data[key] + " is #" + key); // "User john is #234"
}
70
Felix

このようなもの:

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