Wie man über eine schwache Karte iteriert?

8

Eine JavaScript WeakMap ( Ссылка ) erlaubt es Ihnen nicht Erhalte den Schlüssel oder die Länge oder Größe nach dem Design.

Ist es trotzdem möglich, Einträge irgendwie zu durchlaufen?

Wenn nicht ... wie macht die Chrome-Konsole das?

    
commonpike 04.09.2015, 16:38
quelle

2 Antworten

10
  

Ist es trotzdem möglich, Einträge irgendwie zu durchlaufen?

Nein, wie Sie sagen, ist der Inhalt von WeakMap nicht vom Design her zugänglich, und es gibt keine Iterierbarkeit.

  

Wenn nicht ... wie macht die Chrome-Konsole das?

Die Konsole verwendet die Debugging-API der JS-Engine, die den Zugriff auf die Interna von Objekten ermöglicht (auch um Zustände zu versprechen, umwickelte Primitive usw.) und vieles mehr.

    
Bergi 12.09.2015, 20:05
quelle
0

Sie können dieses kleine Snippet für universal forEach verwenden. Es verwendet jedoch lodash und kann stark erweitert werden.

%Vor%

AKTUALISIEREN

Nach langer Zeit fand ich diese Antwort falsch. Die Sache ist ältere Version von core-js Polyfill-Bibliothek hat einen Fehler behoben, wo es native WeakMap Implementierung mit eigenen ersetzt. Also ist meine Lösung in modernen Browsern nicht gültig.

%Vor%     
r37r0m0d3l 28.12.2016 16:54
quelle