我有一个如下所示的 JavaScript 对象:
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
如何循环遍历 p
的所有元素(p1
、p2
、p3
.. .) 并获取它们的键和值?
最佳答案
您可以使用for-in
如其他人所示循环。但是,您还必须确保您获得的 key 是对象的实际属性,而不是来自原型(prototype)。
这是代码片段:
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
for (var key in p) {
if (p.hasOwnProperty(key)) {
console.log(key + " -> " + p[key]);
}
}
For-of 与 Object.keys() 替代方案:
var p = {
0: "value1",
"b": "value2",
key: "value3"
};
for (var key of Object.keys(p)) {
console.log(key + " -> " + p[key])
}
注意 for-of
的使用而不是for-in
,如果不使用,它将在命名属性上返回未定义,并且 Object.keys()
确保仅使用对象自己的属性,而不使用整个原型(prototype)链属性
使用新的 Object.entries()
方法:
注意: Internet Explorer 本身不支持此方法。您可以考虑为旧版浏览器使用 Polyfill。
const p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
for (const [key, value] of Object.entries(p)) {
console.log(`${key}: ${value}`);
}
关于javascript - 如何循环或枚举 JavaScript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32103828/