javascript - 打印嵌套对象的值

标签 javascript arrays loops object

给定一个变量库...

 var library = {
   tracks: { t01: { id: "t01",
               name: "Code Monkey",
               artist: "Jonathan Coulton",
               album: "Thing a Week Three" },
        t02: { id: "t02",
               name: "Model View Controller",
               artist: "James Dempsey",
               album: "WWDC 2003"},
        t03: { id: "t03",
               name: "Four Thirty-Three",
               artist: "John Cage",
               album: "Woodstock 1952"}
      },
   playlists: { p01: { id: "p01",
                  name: "Coding Music",
                  tracks: ["t01", "t02"]
                },
           p02: { id: "p02",
                  name: "Other Playlist",
                  tracks: ["t03"]
                }
         }
 }

...我想按以下形式打印我的库中所有播放列表的列表:

p01: Coding Music - 2 tracks 
p02: Other Playlist - 1 tracks

我的代码按原样返回我:

 { id: 'p01', name: 'Coding Music', tracks: [ 't01', 't02' ] }
 { id: 'p02', name: 'Other Playlist', tracks: [ 't03' ] }

代码:

var keys = Object.keys(library.playlists);
for(var i = 0; i < keys.length; i++) {
  var key = keys[i];
  console.log(library.playlists[key]);
}

我需要如何修改代码才能获得正确的结果,有什么想法吗?

最佳答案

您可以像这样使用 Object.keys()forEach() 循环。

var library = {"tracks":{"t01":{"id":"t01","name":"Code Monkey","artist":"Jonathan Coulton","album":"Thing a Week Three"},"t02":{"id":"t02","name":"Model View Controller","artist":"James Dempsey","album":"WWDC 2003"},"t03":{"id":"t03","name":"Four Thirty-Three","artist":"John Cage","album":"Woodstock 1952"}},"playlists":{"p01":{"id":"p01","name":"Coding Music","tracks":["t01","t02"]},"p02":{"id":"p02","name":"Other Playlist","tracks":["t03"]}}}

var o = library.playlists;
var result = Object.keys(o).forEach(function(e) {
  var str = e + ': ' + o[e].name + ' - ' + o[e].tracks.length + ' tracks';
  console.log(str)
})

关于javascript - 打印嵌套对象的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40160521/

相关文章:

javascript - AJAX,将附加变量传递给回调并将 XMLHTTLRequest.response 存储到变量

arrays - ruby ,传统知识库。 getopenfile 的输出

javascript - polymer dom-repeat 属性不起作用

c# - 如何在 C# 中将 sbyte[] 转换为 byte[]?

javascript - 对于每个表推送到数组

javascript - javascript 脚本运行时 IE 不呈现更改

javascript - 如何通过 JSON 代码运行循环以仅查找 javascript 中的特定字符串?

C++ 测试输入是否为 double /字符

javascript - 如何为表单提交事件创建回调(没有ajax)

javascript - 了解 D3.js 中的 "this"引用