ejs, wie Objekt zu iterieren

8

Ich habe ein einfaches Objektliteral, das die Adresse wie hier gezeigt ist

%Vor%

und sein Inneres in einem Objekt, das ich mit der express.js Renderfunktion übergebe.

In meiner Template-Seite versuche ich wie folgt innerhalb dieses Objekts zu loopen:

%Vor%

welche die Daten ausgibt, aber auch die ejs-Funktionen enthält:

%Vor%

Also wie muss ich mein Objekt iterieren?

    
Boaz Hoch 01.08.2015, 17:54
quelle

3 Antworten

4

Mit einfachem JS können Sie Object.keys verwenden

%Vor%

In Ihrem Beispiel

%Vor%

Ein weiterer cooler Weg ist die Verwendung von lodash: lodash forEach

%Vor%     
Doron Segal 03.08.2015, 05:37
quelle
7

Sie sehen alle geerbten Eigenschaften zusätzlich zu den "eigenen" Eigenschaften, die Sie oben hinzugefügt haben.

Es gibt zwei Möglichkeiten, dies zu lösen. Eine besteht darin, hasOwnProperty() zu verwenden, um sicherzustellen, dass keine vererbten Eigenschaften angezeigt werden:

%Vor%

Oder verwenden Sie Object.keys() , das ein Array von nur nicht vererbten Eigenschaften zurückgibt und darüber iterieren:

%Vor%

Da dies mongosebezogen ist, können Sie auch versuchen, über artist.address.toObject() (mit der öffentlichen API) oder artist.address._doc (mit einer privaten API) oder eventuell eine Ebene auf dem artist -Objekt zu iterieren.

    
mscdex 01.08.2015 18:05
quelle
2

OK, also bin ich hier hineingegangen, ist eine Erklärung, Ich hatte ein Objekt:

%Vor%

ich musste nur diese Eigenschaften anzeigen und nicht einmal geerbt, so dass ich über das Objekt iteriere und seine eigenen Eigenschaften bekam:

%Vor%

aber das Problem war, dass mein artist.address -Objekt zwei weitere Eigenschaften hatte: jeder hält eine Funktion mit einer Rückkehr.

%Vor%

Ich habe also nach Eigenschaften gesucht, die eine Zeichenfolge wie folgt enthalten:

%Vor%     
Boaz Hoch 03.08.2015 17:59
quelle

Tags und Links