如何在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"
}