JavaScript-Objekte und warum du [object Object] siehst

Anleitung zu JavaScript-Objekten

JavaScript-Objekte: Keys, Kopien und [object Object] behoben | We.Inc

Erstelle, lies, durchlaufe und kopiere JavaScript-Objekte und finde heraus, warum deine Seite [object Object] ausgibt und wie du den echten Wert anzeigst. Füge beliebiges JSON ein, um es live zu untersuchen.

Ein JavaScript-Objekt ist eine Sammlung benannter Werte, geschrieben als { key: value }. Einen Wert liest du mit obj.key oder obj['key'], Keys listest du mit Object.keys und Paare mit Object.entries. Der Text [object Object] erscheint, wenn ein Objekt in einen String umgewandelt wird; verwende JSON.stringify(obj), um seinen Inhalt auszugeben.

Aufgaben mit Objekten auf einen Blick

Objekte sind die Form, in der fast jede API-Antwort, Konfigurationsdatei und React-Prop ankommt. Diese Anleitung behandelt die paar Operationen, die du täglich nutzt, und dann die zwei klassischen Überraschungen: [object Object], das auf der Seite oder in einem Alert auftaucht, und eine Kopie, die heimlich ihre verschachtelten Daten mit dem Original teilt.

Häufige Fragen

Warum gibt mein Code [object Object] aus?

Etwas hat das Objekt in einen String umgewandelt: ein + mit Text, ein Template-Literal, ein Alert, element.textContent oder innerText. Das Standard-toString für einfache Objekte gibt den festen Text [object Object] zurück. Gib stattdessen JSON.stringify(obj) aus oder wähle die gemeinte Eigenschaft, etwa obj.name.

Wie durchlaufe ich ein Objekt in JavaScript?

Verwende for (const [key, value] of Object.entries(obj)) { ... }. Ein einfaches Objekt ist nicht iterierbar, daher wirft for...of direkt darauf einen TypeError. for...in funktioniert auch, schließt aber geerbte aufzählbare Keys ein.

Wie kopiere ich ein Objekt, ohne es mit dem Original zu verknüpfen?

Bei einem flachen Objekt reicht { ...obj } oder Object.assign({}, obj). Enthält das Objekt verschachtelte Objekte oder Arrays, verwende structuredClone(obj), das jede Ebene kopiert. Es kommt mit Dates, Maps und Sets zurecht, wirft aber bei Funktionen und DOM-Knoten einen DataCloneError.

Wie wandle ich ein Objekt in ein Array um und zurück?

Object.entries(obj) liefert ein Array aus [key, value]-Paaren. Forme es mit map oder filter um und baue dann mit Object.fromEntries(pairs) wieder ein Objekt. So mappt man üblicherweise über die Werte eines Objekts.

Was ist der Unterschied zwischen einem Objekt und einer Map?

Eine Map akzeptiert jeden Typ als Key, merkt sich die Einfügereihenfolge aller Keys und hat eine size-Eigenschaft. Einfache Objekte verwenden String- oder Symbol-Keys und sind das, was JSON erzeugt. Beachte, dass JSON.stringify eine Map zu {} macht, wandle sie also vorher mit Object.fromEntries(map) um.

Punktnotation oder eckige Klammern

Flache und tiefe Kopien

Den echten Wert statt [object Object] anzeigen

Vier Wege, ein Objekt anzuzeigen

Nur die erste Zeile erzeugt [object Object]. Die anderen geben lesbaren Inhalt aus.

Formatiert auf der Seite ausgeben

Ein pre-Element behält die Zeilenumbrüche und Einrückungen bei, die JSON.stringify mit seinem dritten Argument einfügt.

Objekte mit entries und fromEntries umformen

Steuer auf jeden Preis aufschlagen

entries verwandelt das Objekt in Paare, map ändert jeden Wert, fromEntries baut ein neues Objekt.

Spread im Vergleich zu structuredClone

Die Spread-Kopie teilt das innere address-Objekt; der Klon nicht.

Objekt-Inspektor

Bearbeite das JSON und sieh, wie jeder Ansatz es in Text oder eine Liste verwandelt.

Dein Objekt als JSON

Kein gültiges JSON: {v}

Das ist gültiges JSON, aber kein Objekt. Setze es in geschweifte Klammern.

Wege, das Objekt anzuzeigen

Code

Ausgabe

Kopier-Experiment

Ändere die Stadt an einer Kopie und prüfe dann, ob sich das Original ebenfalls geändert hat.

Neue Stadt für die Kopie

An einer Spread-Kopie ändern

An einer structuredClone-Kopie ändern

Zurücksetzen

original.address.city ist jetzt {v}

Kostenlos starten · Keine Kreditkarte nötig

Verwandt: Ratgeber

Produkt

Für wen

Funktionen

Ressourcen

Unternehmen

Sitemap