次のような JavaScript オブジェクトがあります。
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
のすべてのp
要素 ( p1
、、...) をループして、キーと値を取得するにはp2
どうすればよいですか?p3
ベストアンサー1
あなたは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])
}
の使用に注意してくださいfor-of
の代わりにfor-in
使用しない場合は、名前付きプロパティで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}`);
}