我有一个像以下JavaScript对象:
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
今我想通过循环的所有p
元素(p1
,p2
,p3
...),并获得他们的键和值。我怎样才能做到这一点?
如有必要,我可以修改JavaScript对象。我的最终目标是遍历一些键值对,如果可能的话,我想避免使用eval
。
发布于 2018-08-16 13:52:58
你可以使用for-in
其他人显示的循环。但是,你还必须确保获得的密钥是对象的实际属性,而不是来自原型。
这是片段:
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
for (var key in p) {
if (p.hasOwnProperty(key)) {
console.log(key + " -> " + p[key]);
}
}
发布于 2018-08-16 15:24:13
你必须使用for-in循环
但是在使用这种循环时要非常小心,因为这将循环原型链中的所有属性。
因此,在使用for-in循环时,始终使用hasOwnProperty
方法来确定迭代中的当前属性是否真的是你正在检查的对象的属性:
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
}
https://stackoverflow.com/questions/-100005009
复制相似问题