Einführung
In diesem Lab werden wir untersuchen, wie man mithilfe von JavaScript überprüft, ob ein Zielwert in einem JSON-Objekt vorhanden ist. Wir werden die hasKey()-Funktion verwenden, mit der wir die Schlüssel im Objekt sequentiell überprüfen können, um zu bestimmen, ob der Zielwert vorhanden ist. Dieses Lab wird ein besseres Verständnis davon vermitteln, wie man mit JSON-Objekten in JavaScript umgeht.
JavaScript-Funktion zum Überprüfen, ob ein Objekt einen Schlüssel hat
Um zu überprüfen, ob ein Zielwert in einem JavaScript-Objekt vorhanden ist, verwenden Sie die hasKey-Funktion.
Die Funktion nimmt zwei Argumente entgegen: obj, das JSON-Objekt, in dem gesucht werden soll, und keys, ein Array von Schlüsseln, die überprüft werden sollen. Hier sind die Schritte, um zu überprüfen, ob das Objekt den angegebenen Schlüssel hat:
- Überprüfen Sie, ob das
keys-Array nicht leer ist. Wenn es leer ist, geben Siefalsezurück. - Verwenden Sie die
Array.prototype.every()-Methode, um über daskeys-Array zu iterieren und jeden Schlüssel sequentiell bis zur internen Tiefe vonobjzu überprüfen. - Verwenden Sie die
Object.prototype.hasOwnProperty()-Methode, um zu überprüfen, obobjden aktuellen Schlüssel nicht hat oder kein Objekt ist. Wenn einer dieser Bedingungen zutrifft, stoppen Sie die Ausbreitung und geben Siefalsezurück. - Andernfalls weisen Sie den Wert des Schlüssels
objzu, um ihn in der nächsten Iteration zu verwenden. - Wenn das
keys-Array erfolgreich durchlaufen wurde, geben Sietruezurück.
Hier ist der Code für die hasKey-Funktion:
const hasKey = (obj, keys) => {
return (
keys.length > 0 &&
keys.every((key) => {
if (typeof obj !== "object" || !obj.hasOwnProperty(key)) return false;
obj = obj[key];
return true;
})
);
};
Hier sind einige Beispiele für die Verwendung der hasKey-Funktion:
let obj = {
a: 1,
b: { c: 4 },
"b.d": 5
};
hasKey(obj, ["a"]); // true
hasKey(obj, ["b"]); // true
hasKey(obj, ["b", "c"]); // true
hasKey(obj, ["b.d"]); // true
hasKey(obj, ["d"]); // false
hasKey(obj, ["c"]); // false
hasKey(obj, ["b", "f"]); // false
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab "Überprüfen, ob ein Objekt einen Schlüssel hat" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.