Prüfen, ob Schlüssel in Objekt in JavaScript vorhanden ist
- Verwenden Sie die Element-Direktzugriffsmethode, um zu prüfen, ob der Objektschlüssel in JavaScript existiert
-
Verwenden Sie den
in-Operator, um zu prüfen, ob der Objektschlüssel in JavaScript vorhanden ist oder nicht -
Verwenden Sie die Methode
hasOwnProperty, um zu prüfen, ob der Objektschlüssel in JavaScript existiert oder nicht -
Verwenden Sie die
underscore-Bibliothek, um zu prüfen, ob der Objektschlüssel in JavaScript vorhanden ist oder nicht
In diesem Tutorial werden wir lernen, wie zu prüfen, ob der Schlüssel existiert in JavaScript mit mehreren Möglichkeiten.
Verwenden Sie die Element-Direktzugriffsmethode, um zu prüfen, ob der Objektschlüssel in JavaScript existiert
Wenn ein Schlüssel existiert, sollte er nicht undefined zurückgeben. Um zu prüfen, ob er undefined zurückgibt oder nicht, haben wir direkten Zugriff auf die Schlüssel, und das kann auf zwei Arten geschehen, im Stil von Object und im Stil von Klammerzugriff.
Im folgenden Beispiel zeigen wir, wie man durch direkten Zugriff auf den Schlüssel mit dem Stil Klammern prüfen kann, ob der Schlüssel existiert.
let myObject = {'mykey1': 'My Value 1', 'mykey2': 'My Value 2'};
function isKeyExists(obj, key) {
if (obj[key] == undefined) {
return false;
} else {
return true;
}
}
let result0 = isKeyExists(myObject, 'mykey0')
console.log('Check for the non-existing key, is key exists > ' + result0)
let result1 = isKeyExists(myObject, 'mykey1')
console.log('Check for the existing key, is key exists > ' + result1)
Ausgabe:
Check for the non-existing key, is key exists > false
Check for the existing key, is key exists > true
Der andere Stil, um durch direkten Zugriff auf den Schlüssel zu prüfen, ist die Verwendung des Objektstils. Im folgenden Beispiel sehen wir, wie man die Existenz des Schlüssels in JavaScript überprüfen kann.
let myObject = {mykey1: 'My Value 1', mykey2: 'My Value 2'};
let result = myObject.mykey0 != undefined
console.log('Is myKey0 exists ? ' + result)
let result1 = myObject.mykey1 != undefined
console.log('Is myKey1 exists ? ' + result1)
Ausgabe:
Is myKey0 exists ? false
Is myKey1 exists ? true
Einer der Nachteile der Prüfung auf undefined durch direkten Schlüsselzugriff ist, dass der Wert des Schlüssels gleich undefined sein kann. Das folgende Beispiel soll das Problem mit dieser Methode verdeutlichen.
let myObject = {mykey0: undefined, mykey1: 'My Value 1'};
let result = myObject.mykey0 != undefined
console.log('Is myKey0 exists? ' + result)
let result1 = myObject.mykey1 != undefined
console.log('Is myKey1 exists? ' + result1)
Ausgabe:
Is myKey0 exists? false
Is myKey1 exists? true
Die Lösung für den obigen Fall ist, einer Eigenschaft niemals undefined zuzuweisen, wenn Sie sie mit einem undefinierten Wert initialisieren wollen, sondern sie stattdessen mit null zu initialisieren.
Wenn wir darauf bestehen, den Wert undefined zur Initialisierung zu verwenden, sollten wir den in-Operator, die Methode hasOwnProperty oder die Methode underscore der Bibliothek _.has verwenden.
Verwenden Sie den in-Operator, um zu prüfen, ob der Objektschlüssel in JavaScript vorhanden ist oder nicht
Der in-Operator wird einfach verwendet, um false zurückzugeben, wenn der Schlüssel im Zielobjekt nicht gefunden wurde und gibt true zurück, wenn er gefunden wurde.
let myObject =
{favoriteDish: 'Spaghetti', language: 'English'}
function isKeyExists(obj, key) {
return key in obj;
}
console.log(
'Does language key exists? ' + isKeyExists(myObject, 'language'))
console.log(
'Does nationality key exists? ' + isKeyExists(myObject, 'nationality'))
Ausgabe:
Does language key exists? true
Does nationality key exists? false
Verwenden Sie die Methode hasOwnProperty, um zu prüfen, ob der Objektschlüssel in JavaScript existiert oder nicht
Eine weitere Möglichkeit zu prüfen, ob das Objekt einen bestimmten Property-Schlüssel enthält oder nicht, ist die Verwendung der Methode hasOwnProperty. Im folgenden Beispiel zeigen wir, wie wir die Methode hasOwnProperty verwenden können.
let myObject =
{favoriteDish: 'Spaghetti', language: 'English'}
function isKeyExists(obj, key) {
return obj.hasOwnProperty(key);
}
console.log(
'Does the object have language key? ' +
isKeyExists(myObject, 'language'))
console.log(
'Does the object have nationality key? ' +
isKeyExists(myObject, 'nationality'))
Ausgabe:
Does the object have language key? true
Does the object have nationality key? false
Verwenden Sie die underscore-Bibliothek, um zu prüfen, ob der Objektschlüssel in JavaScript vorhanden ist oder nicht
Wenn wir bereits eine der Methoden der underscore-Bibliothek verwenden, können wir die Methode _.has() verwenden, da sie true zurückgibt, wenn das Objekt den angegebenen Schlüssel hat und false, wenn nicht.
let myObject =
{favoriteDish: 'Spaghetti', language: 'English'}
console.log(
'Check using underscore library if the object has language key? ' +
_.has(myObject, 'language'))
console.log(
'Check using underscore library if the object has nationality key? ' +
_.has(myObject, 'nationality'))
Ausgabe:
Check using underscore library if the object has language key? true
Check using underscore library if the object has nationality key? false
Wir können die Bibliothek von hier importieren.
Verwandter Artikel - JavaScript Object
- Objekte aus einem Array in JavaScript suchen
- Holen Sie sich den Wert des Objekts durch eine Referenz auf den Schlüssel
- JavaScript-Objekt zerstören
- Objekt im Array nach Eigenschaftswert in JavaScript suchen
- Objekte in JavaScript drucken
- Sortieren Array von Objekten nach einzelnen Schlüssel mit Datum Wert