Deep Map Object Keys

JavaScriptJavaScriptBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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:

  1. Öffnen Sie das Terminal/SSH und geben Sie node ein, um mit der Codeausführung zu beginnen.
  2. Verwenden Sie die deepMapKeys-Funktion mit dem bereitgestellten Objekt und einer Funktion, die neue Schlüssel generiert.
  3. 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.
  4. Iterieren Sie über die Schlüssel des Objekts mithilfe von Object.keys().
  5. Erstellen Sie ein neues Objekt mit denselben Werten und zugeordneten Schlüsseln mithilfe von Array.prototype.reduce() und der bereitgestellten Funktion.
  6. Wenn ein Wert ein Objekt ist, rufen Sie deepMapKeys rekursiv 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.