Javascript 从阵列中删除父目录

Javascript 从阵列中删除父目录,javascript,arrays,filtering,pseudocode,Javascript,Arrays,Filtering,Pseudocode,假设我有这样一个文件夹结构: 根 折叠1 文件夹4 折叠2 折页3 折页5 文件夹6 我有一个包含所有路径的数组: let paths = ['/root/','/root/folder1/','/root/folder2','/root/folder2/folder3'... 我想完成的是递归删除具有子目录的父目录,因此我将以以下方式结束: let paths = ['/root/folder1/folder4','/root/folder2/folder3/folder


假设我有这样一个文件夹结构:

    • 折叠1
      • 文件夹4
    • 折叠2
      • 折页3
        • 折页5
    • 文件夹6
我有一个包含所有路径的数组:

let paths = ['/root/','/root/folder1/','/root/folder2','/root/folder2/folder3'...
我想完成的是递归删除具有子目录的父目录,因此我将以以下方式结束:

let paths = ['/root/folder1/folder4','/root/folder2/folder3/folder5','/root/folder6'];
别担心,这不是为了家庭作业什么的,只是我的个人项目卡住了:D

如果你能用伪代码(或者更好的JavaScript)回答,那就太酷了。

你可以检查数组是否包含以给定路径开头的字符串。然后过滤掉那个项目

var path=['/root/'、'/root/folder1/'、'/root/folder2'、'/root/folder2/folder3/'、'/root/folder1/folder4'、'/root/folder2/folder3/folder5'],
result=path.filter((p,i,a)=>!a.slice(i+1).some(o=>o.startsWith(p));

控制台日志(结果)我以不同的方式尝试了它,使用了
过滤器
&
一些
API

let path=['/root/'、'/root/folder1/'、'/root/folder1/folder4/'、'/root/folder2'、'/root/folder2/folder3'、'/root/folder2/folder3/folder5'、'/root/folder6/'];
console.log(path.filter)((path)=>{
return!path.some((indepath)=>{return path!==indepath&&indepath.indexOf(path)>-1});

}));这些文件是否存在,或者是唯一的字符串?我这样问是因为如果你能对照文件系统检查这些文件,你就能发现文件夹中是否有文件夹,因此它是最后一个子文件夹。嗯,你想要不包含子文件夹的路径吗?它们只是字符串。我添加了另一个例子,我希望它能澄清你的问题。数据排序了吗?是的,这就是我想要的。我想我需要一些复杂的循环lol我甚至不知道过滤器谢谢!