ホームページ  >  記事  >  ウェブフロントエンド  >  JS_javascript スキルで渡された JSON データにフィールドが存在するかどうかを確認する方法

JS_javascript スキルで渡された JSON データにフィールドが存在するかどうかを確認する方法

WBOY
WBOYオリジナル
2016-05-16 16:39:211300ブラウズ

渡された JSON データに特定のフィールドが存在するかどうかを確認するにはどうすればよいですか?

1.obj["key"] != 未定義

これは欠陥です。キーが定義されているのに、値が未定義であることが非常に多い場合、この文には問題があります。

2.!(オブジェクト内の「キー」)
3.obj.hasOwnProperty("key")

これら 2 つの方法の方が優れており、推奨されます。

元の回答:

実際、未定義かどうかをチェックすることは、キーが存在するかどうかをテストする正確な方法ではありません。キーは存在するが、値が実際には未定義である場合はどうなるでしょうか?

var obj = { キー: 未定義 };
obj["key"] != 未定義 // false、しかしキーは存在します!

代わりに in 演算子を使用する必要があります:

obj の「key」 // 実際の値に関係なく true

キーが存在しないかどうかを確認したい場合は、必ず括弧を使用してください:

!("key" in obj) // "key" がオブジェクトに存在しない場合は true
!"key" in obj // エラー! "false in obj"

と同等です。

または、オブジェクト インスタンスのプロパティ (継承されたプロパティではない) を特にテストしたい場合は、hasOwnProperty:

を使用します。

obj.hasOwnProperty("key") // true

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