Einführung
In diesem Lab werden wir untersuchen, wie man die deepMapKeys-Funktion in JavaScript verwendet, um die Schlüssel eines Objekts rekursiv zuzuordnen. Wir werden lernen, wie man ein neues Objekt mit denselben Werten und zugeordneten Schlüsseln mithilfe einer bereitgestellten Funktion für jeden Schlüssel erstellt. Durch praktische Übungen und Beispiele werden wir verstehen, wie diese Funktion funktioniert und wie sie in praktischen Szenarien eingesetzt werden kann.
Deep Map Object Keys
Um die Schlüssel eines Objekts tief zuzuordnen, folgen Sie diesen Schritten:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um mit der Codeausführung zu beginnen. - Verwenden Sie die
deepMapKeys-Funktion mit dem bereitgestellten Objekt und einer Funktion, die neue Schlüssel generiert. - Die Funktion erstellt ein Objekt mit denselben Werten wie das bereitgestellte Objekt und Schlüsseln, die durch Ausführen der bereitgestellten Funktion für jeden Schlüssel generiert werden.
- Iterieren Sie über die Schlüssel des Objekts mithilfe von
Object.keys(). - Erstellen Sie ein neues Objekt mit denselben Werten und zugeordneten Schlüsseln mithilfe von
Array.prototype.reduce()und der bereitgestellten Funktion. - Wenn ein Wert ein Objekt ist, rufen Sie
deepMapKeysrekursiv auf, um auch seine Schlüssel zuzuordnen.
const deepMapKeys = (obj, fn) =>
Array.isArray(obj)
? obj.map((val) => deepMapKeys(val, fn))
: typeof obj === "object"
? Object.keys(obj).reduce((acc, current) => {
const key = fn(current);
const val = obj[current];
acc[key] =
val !== null && typeof val === "object"
? deepMapKeys(val, fn)
: val;
return acc;
}, {})
: obj;
Hier ist ein Beispiel für die Verwendung von deepMapKeys:
const obj = {
foo: "1",
nested: {
child: {
withArray: [
{
grandChild: ["hello"]
}
]
}
}
};
const upperKeysObj = deepMapKeys(obj, (key) => key.toUpperCase());
/*
{
"FOO":"1",
"NESTED":{
"CHILD":{
"WITHARRAY":[
{
"GRANDCHILD":[ 'hello' ]
}
]
}
}
}
*/
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Deep Map Object Keys-Lab abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.