[解決済み] JavaScriptのオブジェクトをループスルーまたは列挙するにはどうすればよいですか?
2022-03-17 22:45:52
質問
以下のようなJavaScriptオブジェクトがあります。
var p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
ここで、すべての
p
要素 (
p1
,
p2
,
p3
...) そして、それらのキーと値を取得します。どうすればいいのでしょうか?
必要であれば、JavaScriptオブジェクトを修正することができますね。私の最終的な目標は、いくつかのキーと値のペアをループすることで、可能なら
eval
.
解決方法は?
を使用することができます。
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()の代替となるものです。
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()
は、プロトタイプチェーン全体のプロパティを使用せずに、オブジェクト自身のプロパティのみを使用することを保証します。
新しい
Object.entries()
メソッドを使用します。
注意事項 この方法は、Internet Explorerではネイティブにサポートされていません。古いブラウザの場合は、Polyfillの使用を検討してください。
const p = {
"p1": "value1",
"p2": "value2",
"p3": "value3"
};
for (let [key, value] of Object.entries(p)) {
console.log(`${key}: ${value}`);
}
関連
-
JavaScriptの配列共通メソッド解説
-
VUEグローバルフィルターの概念と留意点、基本的な使い方
-
jq は html ページとデータを動的に分割する。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] enumを列挙するには
-
[解決済み] オブジェクトをメンバーとして、プレーンなJavaScriptオブジェクトをループさせる方法
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vue3.0プロジェクトのアーキテクチャを構築するための便利なツール
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】JavaScriptの配列でforEachが関数でない不具合
-
[解決済み】TypeError: Router.use() はミドルウェアの関数を要求しているが、Object を取得した。
-
[解決済み】Node.js Error: Cannot find module express
-
[解決済み】gulp anythingを実行するたびに、アサーションエラーが発生します。- タスク関数を指定する必要があります
-
[解決済み】 env: node: macにそのようなファイルやディレクトリはありません
-
[解決済み】リクエストに失敗していないのに、「TypeError: failed to fetch」が表示される。
-
JavaScriptのStringに関する共通メソッド
-
[解決済み] JavaScriptオブジェクトのプロパティを列挙するにはどうすればよいですか?[重複しています]。