2012-03-09 21 views
0

これは私のシナリオです - 私は開発しているPhotoshopのプラグインのためにjavascriptを使って動的なフォルダ構造を収集しています。フォルダは次のようになります。配列の配列?

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

+0

はそれを得ました!私にそれを説明してくれてありがとう! – Bungdaddy