Ich habe das folgende JavaScript-Objekt:
var obj = {
"key1" : val,
"key2" : val,
"key3" : val
}
Gibt es eine Möglichkeit, zu überprüfen, ob ein ähnlicher Schlüssel im Array vorhanden ist?
testArray = jQuery.inArray("key1", obj);
funktioniert nicht.
Muss ich das Objekt so durchlaufen?
jQuery.each(obj, function(key,val)){}
javascript
jquery
user2065483
quelle
quelle
obj.has("key1")
funktioniert, wenn Sie ES6 verwenden.obj.hasOwnProperty("key1")
anstatt nurhas
?Antworten:
Verwenden Sie den
in
Operator :Nebenbemerkung: Was Sie dort bekommen haben, ist eigentlich kein jQuery-Objekt, sondern nur ein einfaches JavaScript-Objekt.
quelle
in
?testArray = !( 'key1' in obj);
?Das ist kein jQuery-Objekt, es ist nur ein Objekt.
Mit der hasOwnProperty-Methode können Sie nach einem Schlüssel suchen:
quelle
================================================== =======================
Zugriff auf einen untergeordneten Schlüssel eines anderen Schlüssels
quelle
if (!("key1" in obj)) { console.log("no key1 in obj"); }
Die obigen Antworten sind gut. Aber das ist auch gut und nützlich.
Es ist gut für kurze Codestile, insbesondere für if-Anweisungen:
Hinweis: Wenn Ihr Schlüssel gleich null oder "" ist, ist Ihre "if" -Anweisung falsch.
Der beste Weg, um zu überprüfen, ob ein Schlüssel in einem Objekt vorhanden ist, ist:
'a' in obj
quelle
Sie können dies versuchen:
quelle
map.has(key)
ist die neueste Methode von ECMAScript 2015 , um das Vorhandensein eines Schlüssels in einer Karte zu überprüfen. Siehe diese für nähere Details.quelle
der einfachste Weg ist
quelle