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

发布于 2024-09-03 12:27:57 字数 287 浏览 5 评论 0原文

var user = {};

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

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

其中数据如下:

234: "john", 23421: "smith", ....
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", ....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

2024-09-10 12:27:57

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

var user = {};

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

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];
        }
    }
}
煮茶煮酒煮时光 2024-09-10 12:27:57
for (var key in data) {
    alert("User " + data[key] + " is #" + key); // "User john is #234"
}
for (var key in data) {
    alert("User " + data[key] + " is #" + key); // "User john is #234"
}
辞别 2024-09-10 12:27:57

像这样的事情:

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

Something like this:

setUsers = function (data) {
    for (k in data) {
        user[k] = data[k];
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文