Beim Zugriff auf die Eigenschaften eines großen JavaScript-Objekts wird „undefiniert“ empfangenJavaScript

Javascript-Forum
Guest
 Beim Zugriff auf die Eigenschaften eines großen JavaScript-Objekts wird „undefiniert“ empfangen

Post by Guest »

Ich entwickle eine Web-App, die mit sehr großen (einfach alten) Objekten umgehen muss.
Irgendwann ist das Objekt zu groß und/oder der Speicherverbrauch zu groß hoch, während beim Deep-Cloning eines so großen Objekts der Zugriff auf seinen ersten Wert undefiniert zurückgibt (und nein, der Wert ist tatsächlich nicht undefiniert). Sehen Sie sich unten eine Aufnahme der Entwicklungstools an:
Image

Der gesamte Speicherverbrauch der App beträgt derzeit etwa 2Go, und das betreffende Objekt hat 955.022 Einträge, was zwar groß, aber nicht so groß ist.
Noch eine seltsame Tatsache, wenn ich Iterieren Sie die Schlüssel des Objekts mit for (const name in input) anstelle von for (const name in Object.keys(input)). Die Schleife wird einfach übersprungen, als ob das Objekt leer wäre .
Ist das ein bekannter V8-Fehler (ich habe ihn nicht in der Liste der V8-Fehlerberichte gefunden)?
Gibt es eine Möglichkeit, dieses Problem zu umgehen? Ich kann den Fehler in meiner App reproduzieren, aber es ist mir nicht gelungen, einen minimal reproduzierbaren Fall mit Ihnen zu teilen.
Der TypeScript-Code sieht so aus (einfaches rekursives Deep Cloning):< /p>

Code: Select all

const output: Record = {}
for (const name in input) {
output[name] = jsonDeepCloneUncheck((input as any)[name])
}
return output as T

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post