var oFile2 = [ //"файловая система", id - ID, in - в какой папке { name: "root", file: "folder", id: "97239", in: "0" }, { name: "Efog", file: "folder", id: "97280", in: "0" }, { name: "My Pics", file: "folder", id: "97250", in: "97239" }, { name: "CP.txt", file: "txt", id: "97242", in: "97239" }, { name: "SC.png", file: "png", id: "97240", in: "97239" }, { name: "GC.mp3", file: "mp3", id: "97243", in: "97239" }, { name: "5.avi", file: "avi", id: "97244", in: "97239" }, { name: "123.txt", file: "txt", id: "97242", in: "97250" }, { name: "456.txt", file: "txt", id: "97242", in: "97250" } ] var testCopy = function() { //сюда пока можешь не смотреть, в copyFolder разберись $.each(oFile2, function (_i, _v) { console.log(_v.in); }); var abc = copyFolder(97239, 97280).split(","); $.each(abc, function (i, v) { if (v > 0) { $.each(oFile2, function (_i, _v) { console.log(_v.in); if (_v.in == v) deleteFileById(_v.id); }); } }) } var copyFolder = function(what, to) { var _what = ""; var todelete = what + ","; //сюда пока тоже не смотри var _to = ""; $.each(oFile2, function (i, value) { //так надо, у меня ф-я принимает JQuery объект, тут 100% правльно if (value.id == what) _what = $('
'); }); globalId++; //ну, последний ID, инкремент addFile(_what, globalId, to); //создаем папку в той, куда копируем var folderId = globalId; //а это - куда копировать остальное globalId++; for (var i = 1; i < oFile2.length; i++) { var v = oFile2[i]; if (v.in == what) { //если файл в той папке, из которой копируем... if (v.file == "folder") todelete += copyFolder(v.id, folderId) + ","; //если это папка, то здравствуй, рекурсия else { //иначе - копируем файл file = $(''); addFile(file, globalId, folderId); globalId++; //ну и инкремент } } } return todelete; } //вроде должно пахать идеально, да?