var p = "p1": "value1", "p2": "value2", "p3": "value3"};for (var key in p) if (p.hasOwnProperty(key)) console.log(key " -> " p[key]); }} , |$ M/ Z; E* h! y8 e: H g' B
使用 Object.keys() 替代方案:+ D3 g5 X$ m0 j; _( n$ e5 b
var p = 0: "value1", "b": "value2", key: "value3"};for (var key of Object.keys(p)) console.log(key " -> " p[key])}' H# ]2 T. V) \5 A4 Y
Run code snippet, C) k6 _1 p4 h5 ?# c1 `' A( {, K1 Y
Expand snippet- S. D& x0 s# n$ l8 k* v) s7 z
注意使用for-of而不是for-in,如果不使用,它将返回未定义的命名属性,并且Object.keys()确保只使用对象本身的属性而不使用整个原型链属性* D1 u' Y0 H7 e8 f/ a$ @7 O1 D 使用新Object.entries()方法:" m# c' U- ^% W M; U! j$ k% _ 注意: Internet Explorer 本身不支持此方法。您可以考虑为旧版浏览器使用 Polyfill。 ! {- b- O4 u3 b1 E3 r0 |
const p = "p1": "value1", "p2": "value2", "p3": "value3"};for (let [key,value] of Object.entries(p)) { console.log(`${key}: ${value}`);}% W: R, D- _* b# f3 W% w+ x