如何合并两个文件夹树

时间:2020-07-06 17:35:00

标签: javascript typescript

我需要将文件夹树“ lhsTree”合并到文件夹树“ rhsTree”

如果rhsTree上没有任何文件夹,我必须通过caomparing从lshTree添加它。最佳/简便的方法是什么?

这是我到目前为止所做的

    for(let i = 0;  i < rhsTree.length; i++){
if (previewItem.label == treedataItem.label) {
              treedataItem.children.forEach((child) => {
              child.wstype = "previewfoldernoid";
              previewItem.children.push(child);
            });
            previewItem.wstype = FOLDER_ICON_TYPE.plainFolder; 
            previewItem.applyState = FOLDER_APPLY_STATE.reddot;
          }
        }

这样,我可以更新父元素的文件夹图标。我也需要在子级上更新Foldericon

enter image description here

输出json

[{"id":"WorkA!55","templateId":"","workspace_id":"WorkA!55","label":"nan","wstype":"workspace","status":3,"expanded":true,"children":[{"id":"WorkA!96","templateId":"","parent_id":"WorkA!55","workspace_id":"WorkA!55","label":"no repeat","wstype":"previewfolderid","status":3,"expanded":true,"children":[{"id":"WORKA!97","templateId":"28ce7c14-c6ba-ec52-2093-52f9f375d53b","parent_id":"WORKA!96","label":"first repeatADMIN","wstype":"previewfolderid","folder_type":"regular","status":1,"expanded":true,"children":[{"id":"WORKA!98","templateId":"6d5f670f-656c-0af3-8f05-20541db1cf75","parent_id":"WORKA!97","label":"second repeat [Owner]","wstype":"folder","status":1,"expanded":true,"children":[],"total":0,"applyState":1},{"id":"6d5f670f-656c-0af3-8f05-20541db1cf75","label":"second repeat USER1","expanded":true,"collapsedIcon":"fa fa-folder","checkbox":true,"templateState":0,"children":[{"id":"5d9f02ec-5d71-c525-7104-1b0f887168e3","label":"New folder 1","expanded":true,"collapsedIcon":"fa fa-folder","checkbox":true,"templateState":0,"children":[],"wstype":"previewfoldernoid"}],"wstype":"previewfoldernoid"}],"total":0,"applyState":0},{"id":"WORKA!103","templateId":"28ce7c14-c6ba-ec52-2093-52f9f375d53b","parent_id":"WORKA!96","label":"first repeat","wstype":"folder","folder_type":"regular","status":1,"expanded":true,"children":[],"total":0,"applyState":1},{"id":"WORKA!104","templateId":"28ce7c14-c6ba-ec52-2093-52f9f375d53b","parent_id":"WORKA!96","label":"first repeatTEST01","wstype":"folder","folder_type":"regular","status":1,"expanded":true,"children":[{"id":"WORKA!105","templateId":"6d5f670f-656c-0af3-8f05-20541db1cf75","parent_id":"WORKA!104","label":"second repeat [Owner]","wstype":"folder","status":1,"expanded":true,"children":[{"id":"WORKA!106","templateId":"5d9f02ec-5d71-c525-7104-1b0f887168e3","parent_id":"WORKA!105","label":"New folder 1","wstype":"folder","status":1,"expanded":true,"children":[],"total":0,"applyState":1}],"total":0,"applyState":1}],"total":0,"applyState":1},{"id":"WorkA!99","templateId":"","parent_id":"WorkA!96","workspace_id":"WorkA!55","label":"twest","wstype":"folder","folder_type":"regular","status":3,"expanded":true,"children":[],"total":0,"applyState":3}],"total":4,"applyState":0},{"id":"WorkA!76","templateId":"","parent_id":"WorkA!55","workspace_id":"WorkA!55","label":"New folder 1","wstype":"folder","folder_type":"regular","status":3,"expanded":true,"children":[],"total":0,"applyState":3},{"id":"WorkA!78","templateId":"","parent_id":"WorkA!55","workspace_id":"WorkA!55","label":"New folder 2","wstype":"folder","folder_type":"regular","status":3,"expanded":true,"children":[],"total":0,"applyState":3},{"id":"WorkA!77","templateId":"","parent_id":"WorkA!55","workspace_id":"WorkA!55","label":"New folder 3","wstype":"folder","folder_type":"regular","status":3,"expanded":true,"children":[],"total":0,"applyState":3},{"id":"WorkA!69","templateId":"","parent_id":"WorkA!55","workspace_id":"WorkA!55","label":"new test","wstype":"folder","folder_type":"regular","status":3,"expanded":true,"children":[],"total":0,"applyState":3},{"id":"WorkA!70","templateId":"","parent_id":"WorkA!55","workspace_id":"WorkA!55","label":"new1","wstype":"folder","folder_type":"regular","status":3,"expanded":true,"children":[],"total":0,"applyState":3},{"id":"WorkA!71","templateId":"","parent_id":"WorkA!55","workspace_id":"WorkA!55","label":"new2","wstype":"folder","folder_type":"regular","status":3,"expanded":true,"children":[],"total":0,"applyState":3}],"total":7,"applyState":3}]

0 个答案:

没有答案