两条路径之间最长匹配子路径

Longest Matching SubPath Between Two Paths

本文关键字:路径 之间 两条      更新时间:2023-09-26

我需要比较两条路径以获得它们之间共同的最大子路径的最后一个字符的索引。例:

/folder1/folder2/folder3/ybjagh/
/folder1/folder2/folder3/yAAAAAA

在这种情况下,最大子路径将是/folder1/folder2/folder3/,因为/folder1/folder2/folder3/y不能使其成为完整的路径。那么返回的索引将是23而不是25。

我知道怎么做,但我想我可能想得太多了。是否有一个简单的javascript代码,看起来整洁,做到这一点?

谢谢!

这是我想到的一个-可能有更好的方法使用数组。Reduce也一样——这样你就不需要持久化匹配或任何类似的东西,每次只在路径的一个文件夹上工作

function longpath(a, b) {
    var cont = true;
    b = b.split('/');
    return a.split('/').filter(function(item, index) {
        return cont = cont && b[index] === item;
    }).join('/')+'/';
}