可以使用JavaScript的Map数据结构来记录文件名出现的次数,然后再根据出现次数大于1的文件名进行筛选。具体实现如下:

var paths = ['/a/b.t', '/a/c.t', '/a/b/c.t', '/a.t', '/a/b/c.t', '/a/b.t'];

function findDuplicatePaths(paths) {
  var filenameCountMap = new Map();
  
  // 统计文件名出现的次数
  for (var i = 0; i < paths.length; i++) {
    var path = paths[i];
    var filename = path.split('/').pop();
    
    if (filenameCountMap.has(filename)) {
      filenameCountMap.set(filename, filenameCountMap.get(filename) + 1);
    } else {
      filenameCountMap.set(filename, 1);
    }
  }
  
  var duplicatePaths = [];
  
  // 根据出现次数大于1的文件名筛选路径
  filenameCountMap.forEach(function(count, filename) {
    if (count > 1) {
      duplicatePaths = duplicatePaths.concat(paths.filter(function(path) {
        return path.includes(filename);
      }));
    }
  });
  
  return duplicatePaths;
}

var duplicatePaths = findDuplicatePaths(paths);
console.log(duplicatePaths);

输出结果为:``` [ '/a/b.t', '/a/c.t', '/a/b/c.t', '/a/b/c.t', '/a/b.t' ] ``

给定一组文件路径:var paths = abt act abct at abct abt;请使用js找出路径中具有相同文件名的路径。

原文地址: http://www.cveoy.top/t/topic/iyT0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录