首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何循环或枚举JavaScript对象?

如何循环或枚举JavaScript对象?
EN

Stack Overflow用户
提问于 2018-08-16 05:38:15
回答 2查看 0关注 0票数 0

我有一个像以下JavaScript对象:

代码语言:javascript
复制
var p = {
    "p1": "value1",
    "p2": "value2",
    "p3": "value3"
};

今我想通过循环的所有p元素(p1p2p3...),并获得他们的键和值。我怎样才能做到这一点?

如有必要,我可以修改JavaScript对象。我的最终目标是遍历一些键值对,如果可能的话,我想避免使用eval

EN

回答 2

Stack Overflow用户

发布于 2018-08-16 13:52:58

你可以使用for-in其他人显示的循环。但是,你还必须确保获得的密钥是对象的实际属性,而不是来自原型。

这是片段:

代码语言:javascript
复制
var p = {
    "p1": "value1",
    "p2": "value2",
    "p3": "value3"
};

for (var key in p) {
    if (p.hasOwnProperty(key)) {
        console.log(key + " -> " + p[key]);
    }
}
票数 0
EN

Stack Overflow用户

发布于 2018-08-16 15:24:13

你必须使用for-in循环

但是在使用这种循环时要非常小心,因为这将循环原型链中的所有属性

因此,在使用for-in循环时,始终使用hasOwnProperty方法来确定迭代中的当前属性是否真的是你正在检查的对象的属性:

代码语言:javascript
复制
for (var prop in p) {
    if (!p.hasOwnProperty(prop)) {
        //The current property is not a direct property of p
        continue;
    }
    //Do your logic with the property here
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档