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()处理键/值由于您已标记了
递归
,我假设您正在递归目录。如果您需要递归应用此方法的帮助,请将您的代码添加到问题中并让我知道。干杯!