循环对象并成对打印

时间:2015-10-13 13:16:28

标签: javascript node.js

我有一个对象ref用于我的node.js应用程序的视图,其中包含以下内容。

video

这是循环

{ title: 
       [ 'Jason Fried: Why work doesn\'t happen at work',
         'John Maeda: How art, technology and design inform creative leaders',
         'From Storytelling to Storylistening: John Maeda (Future of StoryTelling 2014)' ],
      url: 
       [ 'https://www.youtube.com/watch?v=5XD2kNopsUs&feature=youtu.be',
         'http://www.youtube.com/watch?v=WAuDCOl9qrk&feature=youtu.be',
         'http://www.youtube.com/watch?v=U8-Q70gV2Yk&feature=youtu.be' ] }

这给了我这个

<% for (var key in video) { %>
 <li><%= video[key] %></li>
<% } %>

如何制作以便按以下方式打印?

<li>title[0] title[1] title[2]</li>
<li>url[0] url[1] url[2]</li>

1 个答案:

答案 0 :(得分:3)

根据您对象的结构,并假设您拥有与视频一样多的网址,您应该执行以下操作:

<% for (var i = 0; i < video.title.length; i++) { %> 
    <li><%=video.title[i]%> <%=video.url[i]%></li>
<% } %>

修改

如果你想使用你正在尝试的循环,你应该像这样构建你的对象:

// Video will be a list of objects
var video = [];

Object.keys(data.list).forEach(function(item) {
    video.push({
        title : data.list[item].resolved_title,
        url : data.list[item].resolved_url
    )};
})

然后,您将能够像这样编写循环:

<% for (var key in video) { %>
     <li><%= video[key].title %> <%=video[key].url%></li>
<% } %>