渡された JSON データに特定のフィールドが存在するかどうかを確認するにはどうすればよいでしょうか?
1.obj["key"] != 未定義
キーが定義されている場合、これは非常に 2 になります。割り当てが未定義の場合、この文には問題が発生します。
2.!("key" in obj)
3.obj.hasOwnProperty("key")
これら 2 つの方法の方が優れており、推奨されます。
元の答え:
実際、未定義かどうかをチェックすることは、キーが存在するかどうかをテストする正確な方法ではありません。キーは存在するが、値が実際には未定義である場合はどうなりますか? 🎜>var obj = { key: unknown };
obj["key"] != unknown // false ですが、キーは存在します!
代わりに in 演算子を使用する必要があります:
"key" in obj // 実際の値に関係なく true
キーが存在するかどうかを確認したい場合は、かっこを使用することを忘れないでください:
!("key " in obj) // オブジェクト
に "key" が存在しない場合は true!"key" in obj // エラー! "false in obj" と同等
または、特に指定したい場合は、オブジェクト インスタンスのプロパティ (継承されたプロパティではない) をテストします。 usehasOwnProperty:
obj.hasOwnProperty("key") // true