[解決済み] javascriptオブジェクトの名前を知らない場合、どのようにプロパティにアクセスするのですか?
2022-08-14 15:07:19
質問
このようなjavascriptオブジェクトがあるとします。
var data = { foo: 'bar', baz: 'quux' };
プロパティ名でアクセスすることができます。
var foo = data.foo;
var baz = data["baz"];
しかし、プロパティの名前がわからない場合に、これらの値を取得することは可能なのでしょうか?これらのプロパティは順序付けされていないため、見分けがつかないのでしょうか?
私の場合、関数が一連の名前と値のペアを受け入れる必要がある状況について特に考えていますが、プロパティの名前は変更される可能性があります。
これを行う方法についての私の考えは、データとともにプロパティの名前を関数に渡すことですが、これはハックのように感じられます。可能であれば、イントロスペクションでこれを行うことを希望します。
どのように解決するのですか?
古いバージョンのJavaScript(< ES5)では
for..in
ループを使用する必要があります。
for (var key in data) {
if (data.hasOwnProperty(key)) {
// do something with key
}
}
ES5の紹介 オブジェクトのキー と Array#forEach を追加することで、これが少し簡単になります。
var data = { foo: 'bar', baz: 'quux' };
Object.keys(data); // ['foo', 'baz']
Object.keys(data).map(function(key){ return data[key] }) // ['bar', 'quux']
Object.keys(data).forEach(function (key) {
// do something with data[key]
});
ES2017
紹介
Object.values
そして
Object.entries
.
Object.values(data) // ['bar', 'quux']
Object.entries(data) // [['foo', 'bar'], ['baz', 'quux']]
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] Google maps API V3 - 同一地点に複数のマーカーを設置する。
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] javascriptで文字列から関数を作成する方法はありますか?
-
[解決済み] 各オブジェクトに?重複
-
[解決済み] 文字列とラベルのローカライズとグローバリゼーションのベストプラクティス【終了しました
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?
-
[解決済み] JavaScript で css プロパティを使用して HTML 要素の背景色を設定する方法
-
[解決済み] Chrome拡張機能:popup.htmlを強制終了させる