我想以遞歸方式提取此結構中的文件。我已經完成了第一級,但不能繼續。在javascript中遞歸地從數組中提取值
var DirectoryTree = {
dir: 'project1',
files: [
'proj.config', {
dir: 'src',
files: [
'name.htm',
'dept.htm',
'salary.htm', {
dir: 'scripts',
files: [
'name.js',
'dept.js',
'salary.js'
]
}
]
}, {
dir: 'project2',
files: [
'proj.config', {
dir: 'src',
files: [
'name.htm',
'dept.htm',
'salary.htm', {
dir: 'scripts',
files: [
'name.js',
'dept.js',
'salary.js'
]
}
]
}
]
}
]
};
下面是我到目前爲止的代碼。我有點卡在這裏。你能幫我從下一個層面獲取數據嗎?
function listFiles(dirTree, subFolder){
var fList=[];
if(dirTree.files){
for (var i=0;i<dirTree.files.length;i++){
if(typeof dirTree.files[i] === 'string'){
fList.push(dirTree.files[i]);
}
}
}
if(dirTree.dir){
return(listFiles(dirTree.dir, subFolder));
}
return fList;
}
1.)你是否想要獲取所有文件? 2.)你爲什麼要這樣做? –
此外,您正嘗試從***對象中提取值 - 而不是「數組」。準確。 :) –
是的。所有的文件名。 – buggedUp