如何遍历或枚举JavaScript对象?

发布时间 2023-10-26 20:09:24作者: 小满独家

内容来自 DOC https://q.houxu6.top/?s=如何遍历或枚举JavaScript对象?

我有一个如下的JavaScript对象:

var p = {
    "p1": "value1",
    "p2": "value2",
    "p3": "value3"
};

如何遍历p的所有元素(p1p2p3...)并获取它们的键和值?


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

这里是代码片段:

var p = {
    "p1": "value1",
    "p2": "value2",
    "p3": "value3"
};

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

使用Object.keys()的for-of替代方案:

var p = {
    0: "value1",
    "b": "value2",
    key: "value3"
};

for (var key of Object.keys(p)) {
    console.log(key + " -> " + p[key])
}

请注意,如果不使用它,在命名属性上将返回undefined,并且Object.keys()确保只使用对象自己的属性,而不包括整个原型链属性。

使用新的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}`);
}