2012-03-09 6 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

+0

получил! Спасибо, что объяснил это мне! – Bungdaddy

Смежные вопросы