如何在没有它们的情况下在另一个数组中显示数组?

时间:2018-02-26 05:52:27

标签: javascript arrays node.js mongodb express

所以我有这个应用程序,我需要显示上传到我的MongoDB数据库的图像。我可以显示它们但我想通过环绕显示的每个图像的链接来进一步。该链接将包含每个图像的id,用户可以点击该图像并获取有关图像的更多信息。

所以这就是问题的开始。我必须使用另一种方法来显示这些图像周围的链接包装器。因此,每当我使用数组显示链接时,图像乘以3.在我的数据库中有3个图像的情况下,当我使用数组显示链接包装时,还会显示6个图像。

让我提出更多背景。

这些是没有链接包装的图像:

这是我用来显示这5张图片的代码。

app.get('/', function (req, res) {meme.find({}, {}, function (err, result) {            
  if (err) throw err; 
  res.render('pages/index', {
    user: req.user,
    path: result.map(u=> u.imgs),   
    Title: 'The Meme Search Engine - Meme Africa'
  });
 });
}); 

用于显示这些图像的前端。

<div class="container-fluid">
  <div class="row">         
    <% for(var i=0; i<path.length; i++) { %>
      <div class="col-md-1 col-md-offset-1">
        <img src='http://localhost:5000/public/Images/<%= path[i] %>' style="height: 150px; width: 150px; line-height: 0px" alt="memes">
      </div>
    <% } %>
  </div>  
</div> 

现在我想在每个图像上包含链接,以便用户点击它们以获得有关每个图像的更多信息。这将需要另一个阵列。

所以这就是我的代码的样子:

app.get('/', function (req, res) {
  meme.find({}, {}, function (err, result) {            
    if (err) throw err; 

    res.render('pages/index', {
      user: req.user,
      pathi: result.map(i => i.username),
      path: result.map(u=> u.imgs),     
      Title: 'The Meme Search Engine - Meme Africa'
    });
  });
}); 

前端代码如下所示:

<div class="container-fluid">
  <div class="row">         
    <%  for (var x=0; x<pathi.length; x++) {%>
      <% for(var i=0; i<path.length; i++) { %>
        <div class="col-md-1 col-md-offset-1">
          <a href="/Images/<%= pathi[x]%>">
            <img src='http://localhost:5000/public/Images/<%= path[x] %>' style="height: 150px; width: 150px; line-height: 0px" alt="memes">  
          </a>
        </div>
      <% } %>
    <%}%>
  </div>  
</div>  

结果:

你可以看到所有图像都成倍增加。同时,我的MongoDB数据库中只有5张图像。我认为问题是使用数组来显示链接包。现在我很好奇在没有初始结果成倍增加的情况下,最好的方法是什么。

我很抱歉答案很长,因为这个问题看起来有点复杂,我需要向有兴趣帮助我解决的人提供一切。如果您希望我澄清任何内容,请在评论部分告诉我。

我正在使用的堆栈:Node / express,ejs作为模板和MongoDB。

感谢。

1 个答案:

答案 0 :(得分:1)

由于您只使用df = pd.concat([df1, df2, df3], axis=1) df = df.reindex(columns=sorted(df.columns, key=lambda x: int(x.split('_')[1]))) print (df) A_1 B_1 C_1 A_2 B_2 C_2 A_3 B_3 C_3 MAC ID1 1.0 1.0 1.0 1.0 1.0 1.0 2.0 1.0 2.0 ID2 6.0 2.0 5.0 6.0 2.0 5.0 7.0 3.0 5.0 ID3 1.0 1.0 1.0 2.0 1.0 2.0 3.0 1.0 3.0 索引,因此只需要一个循环(并且只获得一次模因迭代):

x

或者您可以将所有信息作为对象数组传递,并从一个数组中读取属性。