JavaScript オブジェクトをループまたは列挙するにはどうすればよいですか? 質問する

JavaScript オブジェクトをループまたは列挙するにはどうすればよいですか? 質問する

次のような 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}`);
}

おすすめ記事