javascript - 两条路径之间的最长匹配子路径

标签 javascript string

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

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

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

我知道该怎么做,但我想我可能想得太多了。有没有一个看起来很简洁的简单 JavaScript 代码可以做到这一点?

谢谢!

最佳答案

这是我的一个想法 - 可能还有一种更好的方法使用 array.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('/')+'/';
}

关于javascript - 两条路径之间的最长匹配子路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32579158/

相关文章:

javascript - Node :Error 401(Unauthorized) i m using passport-jwt

javascript - 如何在 AngularJS 指令模板中使用 ng-repeat 和先前声明的函数?

python - 根据谓词从列表中删除元素

PHP 正则表达式替换相似字符串中某个字符的所有实例

javascript - Rails 4 - 嵌套表单和选择选择

javascript - php 中的 header() 不工作

javascript - ES6 对于每个/ map 学生成绩

java - 如何将字符串中的数字递增 1?

string - lua中如何去除多行字符串

string - Swift - 将字符串拆分成多行