Arrays 节点/快捷目录浏览

Arrays 节点/快捷目录浏览,arrays,node.js,object,recursion,express,Arrays,Node.js,Object,Recursion,Express,我整天都在努力解决这个问题: 我有一个带有子目录的目录,例如: | Music Artist 1 | - Album Nr 1 | -- Track 1 | -- Track 2 | -- ... | - Album Nr 2 | -- Track 1 | -- Track 2 | -- ... | Music Artist 2 | - Album Nr 1 | -- Track 1 | -- Track 2 | -- ... 现在,我将循环浏览这些目录,并将所有细

我整天都在努力解决这个问题:

我有一个带有子目录的目录,例如:

 | Music Artist 1
 | - Album Nr 1
 | -- Track 1
 | -- Track 2
 | -- ...
 | - Album Nr 2
 | -- Track 1
 | -- Track 2
 | -- ...
 | Music Artist 2
 | - Album Nr 1
 | -- Track 1
 | -- Track 2
 | -- ...
现在,我将循环浏览这些目录,并将所有细节添加到一个数组/对象中。 所以它应该是这样的:

 [ { artist: Music Artist 1, album { title: Album Nr1, songs: { title: Track 1 } ... } ]
获取所有目录名/文件不是问题。我不知道如何创建阵列:(

提前感谢

编辑:
这是我的尝试:

你可以创建
artist
对象和
push()
你创建的每一个对象进入一个数组。类似地,
album
song
可能是对象
push()
插入到与其父对象相连的相应数组中

var artists = [];
// for each artist we have
    var artist = {};
    artist.name = 'Music Artist 1';
    artist.albums = [];
    // for each album we have
        var album = {};
        album.title = 'Album Nr1'
        album.songs = [];
        // for each song that we have
            var song = {};
            song.title = 'Track 1';
            album.songs.push(song);
        // end song loop
        artist.albums.push(album);
    // end album loop
    artists.push(artist)
// end artist loop
如果您需要JSON格式的信息,您可以使用JSON解析器对其进行解析。或者您可以通过在
artist
数组上循环,以编程方式从每个
artist
读取数据

// returns name of first artist in array
artists[0].name;

// returns title of first album by first artist in respective arrays
artists[0].albums[0].title;

// returns title of first song in first album by first artist in respective arrays
artists[0].albums[0].songs[0].title;

也许我遗漏了一些东西,但是.push()有什么问题吗?嗯,可能很简单……但我是一个完全的JS/节点nub。如果我在目录循环之前执行var array=[],我不知道如何使用.push()处理键/值由于您已标记了
递归
,我假设您正在递归目录。如果您需要递归应用此方法的帮助,请将您的代码添加到问题中并让我知道。干杯!