2016-09-21 7 views
0

Ich versuche, Objekte aus einem Array abzurufen und sie einzeln auszuwählen. Wenn ein Objekt zurückgegeben wird, werden meine Tabellenzellen mit diesem Objekt gefüllt, d. H. ([Objektobjekt]), anstelle der Eigenschaften dieses Objekts, die die Tabelle füllen. Ich weiß, dass ich wahrscheinlich das zurückgegebene Array destrukturieren muss, um die einzelnen Objekte abzurufen. Ich finde jedoch keine Möglichkeit, das Array zu destrukturieren und die Objekte an meine HTML-Seite zu senden. Dies ist mein Code:Destrukturieren mehrerer Objekt-Arrays

app.get('/lastName/:Name', function(req, res) { 
     var newArr = foo.lookupByLastName(req.params.Name);      
     res.type('text/html'); 
     res.render('last', {LName: newArr}); 
} 

console.log (newArr) liefert vollständige Palette:

[{id:1, firstName: 'John', lastName: 'Doe'}, 
{id:1, firstName: 'James', lastName: 'Smith'}, 
{id:1, firstName: 'Jane', lastName: 'Doe'}, 
{....         ...] 

Ich versuche, etwas im Gegenzug wie folgt zu erhalten:

{id:1, firstName: 'John', lastName: 'Doe'} 
{id:2, firstName: 'James', lastName: 'Smith'} 
{id:3, firstName: 'Jane', lastName: 'Doe'} 

In meinem html Seite Ich versuche, über die zurückgegebenen Objekte zu iterieren und jedes Objekt in einer einzigen Zeile und die entsprechenden Eigenschaften in den anderen Zellen einer Tabelle zu platzieren.

<table border=1> 
    <tr> 
    {{#each LName}} 
     <td> 
     {{this}} 
     </td> 
    {{/each}} 
    </tr> 
</table> 
+0

Dies ist keine Destrukturierung. Welche Template-Engine verwendest du? Das einfachste Ding ist, nur dieses herauszuschreiben.field1 this.field2 etc. –

+0

Ich war in der Lage, die Objekte im newArr zu trennen, der newArr [i] verwendet. Das funktioniert, aber wenn ich mehrere Objekte habe, müsste ich den Index von newArr kennen. –

Antwort

0

Ich fand eine temporäre Lösung. Mit dieser Lösung muss ich nun eine Schleife erstellen, die mir die Ausgabe für res.render() liefert. Ich erstelle eine Schleife, in der ich denke, ich könnte die Zeichenfolge in res.render platzieren, aber es wurde ein Fehler ausgegeben. Das ist, was ich tue:

app.get('/lastName/:Name', function(req, res) { 
    var newArr = foo.lookupByLastName(req.params.Name);      
    res.type('text/html'); 
    res.render('last', {Per1: newArr[0], Per2: newArr[1], Per3:newArr[3] }); 
    } 

Dies ist der Blick, den ich gebraucht hätte, wenn es funktioniert:

text ="{"; 
for (;newArr[i];) 
    {text+="Per"+i+":"+ "newArr["+i+"],"; 
    i++;} 
text+='}'; 

Mit dieser Schleife res.render würde wie folgt aussehen:

app.get('/lastName/:Name', function(req, res) { 
    var newArr = foo.lookupByLastName(req.params.Name);      
    res.type('text/html'); 
    res.render('last', text); 
    } 
Verwandte Themen