2016-09-21 81 views
0

我想从数组中检索对象并单独选择它们。当一个对象返回时,我的表格单元格将填充该对象,即([object Object]),而不是填充表格的那个对象的属性。我知道我可能需要解构返回的数组来检索单个对象。但是,我无法找到解构数组并将对象发送到我的html页面的方法。这是我的代码:解构多个对象数组

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)返回全排列:

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

我试图得到一些回报这样的:

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

里面我的HTML页面我试图遍历返回的对象,并将每个对象放在一行中,并在表格的其他单元格中放置相应的属性。

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

这是不解构。你使用的是什么模板引擎?最简单的就是写出this.field1 this.field2等 –

+0

我可以使用newArr [i]分隔newArr中的对象。这工作,但如果我有多个对象,我将不得不知道newArr的索引。 –

回答

0

我找到了一个临时解决方案。但是,现在我需要创建一个循环来让res.render()的输出成为可能。我创建了一个循环思考,我可以将字符串放置在res.render中,但却发生错误。这是我做过什么:

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] }); 
    } 

这是如果它的工作,我会用一下:

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

有了这个循环res.render会是什么样子:

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