2012-03-09 66 views
0

所以这里是我的场景 - 我正在收集一个动态文件夹结构与JavaScript为我开发的一个photoshop插件。以下是文件夹可能是什么样子:数组的阵列?

Folder 1 
    subFolder1 
     file1 
     file2 
    subFolder2 
     subsubfolder1 
     subsubfolder2 
      file1 
      file2 


Folder 2 
     subFolder1 
      file1 
      file2 
     subFolder2 
      subsubfolder1 
      subsubfolder2 
       file1 
       file2 

将这个语法是什么样的?试图想出来,但看起来并不正确。另外你将如何循环这样的事情?你看看每个子阵列吗?

var multiArray = [ [Folder1, [subFolder1, [file1,file2],subFolder2, [subsubFolder1, subsubFolder2, [file1,file2] ], Folder2, [subFolder1, [file1,file2], subFolder2, [subsubfolder1,subsubfoler2, [file1,file2] 

回答

4
var who = { 
    just: "an object", 
    with: "a couple of properties" 
}; 

var ArrayOofArrays = [ 
    [1,2,3], 
    [4,5,7], 
    [1,{},""], 
    ["a",2,{c: "b",e: who}] 
]; 

在您的例子:

var folder = { 
    subfolders: [ 
     subfolder, 
     subfolder 
    ], 
    files: [ 
     file, 
     file 
    ] 
}; 

子文件夹将是 - >

var subfolder = function() { 
    return { 
     folders: [ 
     ], 
     files: [ 
     ], 
     path: "path/to/folder" // etc.. 
    } 
}; 

文件将是 - >

var fileInfo = function() { 
    return { 
     filename: "path/to/file" // etc. 
    }; 
} 

它确实取决于你想要达到的目标,但通常情况下,对象和数组的组合是最好的。

,所以你可以有类似

var buildFolder = function(){ 
    return { 
     folders: [], 
     files: [] 
    }; 
}; 

var buildFile = function(title){ 
    return { 
     title: title 
    }; 
}; 

var folder = buildFolder(); 

folder.files.push(buildFile()); 
folder.files.push(buildFile()); 
folder.files.push(buildFile()); 
folder.files.push(buildFile()); 

folder.folders.push(buildFolder()); 
folder.folders[0].files.push(buildFile()); 
+0

对不起的人,你多在这个比我,你可以帮我翻译这一点。谢谢 – Bungdaddy 2012-03-09 02:22:52

+0

明白了!感谢您向我解释! – Bungdaddy 2012-03-09 02:27:03