ホームページ >ウェブフロントエンド >jsチュートリアル >動的プロパティ名を持つプロパティが Javascript オブジェクトに存在するかどうかを確認するにはどうすればよいですか?

動的プロパティ名を持つプロパティが Javascript オブジェクトに存在するかどうかを確認するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-29 11:09:29422ブラウズ

How do you Check if a Property Exists in a Javascript Object with a Dynamic Property Name?

動的プロパティ名を使用したオブジェクト プロパティの存在の確認

JavaScript でオブジェクトを扱う場合、多くの場合、特定のプロパティが存在するかどうかを確認する必要があります。ただし、プロパティ名が変数に格納されている場合、従来の方法は効果的に機能しない可能性があります。

指定されたコード スニペットでは、開発者は myObj オブジェクトに 'prop' という名前のプロパティがあるかどうかを確認しようとしますが、 myProp 変数が文字列連結で誤って定義されています。その結果、コードは存在しないプロパティ 'myProp' を検索します。

この問題に対処するには、いくつかの代替アプローチを使用できます。

1. hasOwnProperty() の使用

hasOwnProperty() メソッドは、指定されたプロパティがオブジェクト内で直接定義されているかどうか (プロトタイプから継承されていないかどうか) を検証します。

<code class="js">var myProp = 'prop';
if(myObj.hasOwnProperty(myProp)){
    alert("yes, i have that property");
}</code>

2. in 演算子の使用

in 演算子は、直接定義されているか継承されているかに関係なく、指定されたプロパティがオブジェクト内に存在するかどうかを確認します。

<code class="js">var myProp = 'prop';
if(myProp in myObj){
    alert("yes, i have that property");
}</code>

3.プロパティ名の直接チェック

プロパティ名が確実にわかっている場合は、変数を使用せずに直接チェックできます。

<code class="js">if('prop' in myObj){
    alert("yes, i have that property");
}</code>

注: hasOwnProperty () メソッドは継承されたプロパティを無視しますが、in 演算子には継承されたプロパティが含まれます。したがって、アプローチの選択は、継承されたプロパティが実行されるチェックに関連するかどうかによって決まります。

以上が動的プロパティ名を持つプロパティが Javascript オブジェクトに存在するかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。