Heim  >  Artikel  >  Web-Frontend  >  So ermitteln Sie, ob ein bestimmtes Feld in den übergebenen JSON-Daten in JS_javascript-Skills vorhanden ist

So ermitteln Sie, ob ein bestimmtes Feld in den übergebenen JSON-Daten in JS_javascript-Skills vorhanden ist

WBOY
WBOYOriginal
2016-05-16 16:39:211300Durchsuche

Wie kann festgestellt werden, ob ein bestimmtes Feld in den übergebenen JSON-Daten vorhanden ist?

1.obj["key"] != undefiniert

Dies ist fehlerhaft. Wenn der Schlüssel definiert ist und der Wert sehr oft undefiniert ist, liegt ein Problem mit diesem Satz vor.

2.!("key" in obj)
3.obj.hasOwnProperty("key")

Diese beiden Methoden sind besser und empfehlenswert.

Ursprüngliche Antwort:

Eigentlich ist die Prüfung auf Undefiniertheit keine genaue Methode, um zu testen, ob ein Schlüssel existiert, aber der Wert ist tatsächlich undefiniert?

var obj = { key: undefiniert };
obj["key"] != undefiniert // false, aber der Schlüssel existiert!

Sie sollten stattdessen den In-Operator verwenden:

"key" in obj // true, unabhängig vom tatsächlichen Wert

Wenn Sie überprüfen möchten, ob ein Schlüssel nicht existiert, denken Sie daran, Klammern zu verwenden:

!("key" in obj) // wahr, wenn „key“ im Objekt nicht vorhanden ist
!"key" in obj // ERROR! Entspricht „false in obj“

Oder, wenn Sie insbesondere die Eigenschaften der Objektinstanz (und nicht die geerbten Eigenschaften) testen möchten, verwenden Sie hasOwnProperty:

obj.hasOwnProperty("key") // true

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn