如何在Javascript中循环键入/值对象?

时间:2010-06-02 14:51:45

标签: javascript loops for-loop iteration key-value

var user = {};

现在我想创建一个setUsers()方法,它接受键/值对象并初始化user变量。

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

数据如下:

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

3 个答案:

答案 0 :(得分:179)

请注意从对象原型继承的属性(如果您在页面上包含任何库,可能会发生这种情况,例如旧版本的Prototype)。您可以使用对象的hasOwnProperty()方法来检查这一点。使用for...in循环时,这通常是一个好主意:

var user = {};

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

答案 1 :(得分:70)

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

答案 2 :(得分:11)

这样的事情:

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