2016-11-16 4 views
-1

Ist es schwieriger zu prüfen, ob eine Eigenschaft in einem JSON-Objekt vorhanden ist, anstatt zu prüfen, ob die Eigenschaft null ist?Überprüfen, ob die Eigenschaft vorhanden ist und nicht, ob sie null ist

Können Sie beides gleichzeitig tun?

+0

Können Sie konkret? – randominstanceOfLivingThing

+0

http://stackoverflow.com/questions/6384421/check-whether-a-value-exists-in-json-object –

+0

Wenn eine Eigenschaft null ist, dann ist es ==== null. Wenn es für ein JSON-Objekt nicht festgelegt ist, ist es "=== undefiniert". –

Antwort

3

Sie können hasOwnProperty(prop) verwenden, um festzustellen, ob die Eigenschaft vorhanden ist. wenn eine Eigenschaft null ist für die Überprüfung

if ('prop' in obj) 

oder

if (obj.hasOwnProperty('prop')) 

Die Syntax:

var a = { p: null }; 
a.p == null; // true 
a.hasOwnProperty('p'); // true 
+0

Sie könnten auch 'in' Operator erwähnt haben. "p" in einem " – zerkms

1

Die Syntax zum Prüfen, ob eine Eigenschaft vorhanden ist

if (obj.prop === null) 

Im Allgemeinen können Sie beides nicht gleichzeitig tun einzelne Operation. Wenn die Eigenschaft nicht existiert, wird obj.propundefined sein, also wird === null falsch sein.

In vielen Fällen wissen Sie jedoch a priori, welche Art von Werten eine Eigenschaft enthalten wird. Wenn Sie wissen, dass, wenn es es existiert immer ein truthy Wert sein, können Sie einfach schreiben:

if (obj.prop) 

Eine typische Situation, in diesem Fall ist, wenn die Eigenschaft immer ein Objekt enthält. Wir können davon in Idiomen profitieren wie:

if (obj && obj.prop && obj.prop.subprop && obj.prop.subprop.number == 3) 
Verwandte Themen