在Javascript中循环访问对象和打印值

时间:2015-10-13 12:40:21

标签: javascript node.js

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

{ 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 i = 0; i < video.length; i++) { 

    var videoAtr = video[i]; 

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

更新

我想按照以下方式打印。

  • title [0] url [0]
  • title [1] url [1]
  • title [2] url [2]
  • 1 个答案:

    答案 0 :(得分:1)

    由于关联数组是JavaScript中的对象,您可以执行此操作

    for (var key in p) {
       if (p.hasOwnProperty(key)) {
         console.log(key + " -> " + p[key]);
      }
     }
    

    if条件是检查属性是否来自原型,因为您的对象位于上方

    你的代码不起作用的原因是因为它是一个对象,它不存储长度属性

    修改

    要让<li>显示

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