gpt4 book ai didi

javascript - 过滤掉递归目录路径

转载 作者:行者123 更新时间:2023-11-30 13:46:40 25 4
gpt4 key购买 nike

给定一个文件数组,如何过滤掉属于其他路径的子路径?

例子:

var pathList = [
"/foo/bar/fooBar",
"/foo/bar",
"/foo"
];

调用函数 parentPaths(pathList) 应该返回一个包含一个元素 "/foo" 的数组,因为 "/foo/bar""/foo/bar/fooBar""/foo" 的子级。

编辑 1:

函数 parentPaths(pathList) 应该返回每条路径,要么是唯一的,要么是一个或多个路径的父路径。

一个更精确的例子是:

var pathList = [
"/foo/bar/foobar/foobar/foobar",
"/foo/bar/foobar/foobar",
"/foo/bar/foobar",
"/foo/bar2"
];

parentPaths(pathList) 将返回 ["/foo/bar/foobar", "/foo/bar2"]

最佳答案

您可以按长度升序对数组进行排序,并检查字符串是否与存储的字符串匹配。

如果不匹配,则将其添加到结果集中。

var pathList = ["/foo/bar/fooBar", "/foo/bar", "/foo", "/bb", "/bb/a"],
result = pathList
.sort((a, b) => a.length - b.length)
.reduce((r, s) => {
if (!r.some(t => s.startsWith(t))) r.push(s);
return r;
}, []);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 过滤掉递归目录路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59194580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com