JavaScript 筛选相对路径中文件名相同的路径
可以使用JavaScript的字符串操作和数组方法来实现。首先,将相对路径存储在一个数组中,然后使用split()方法将每个路径字符串拆分为目录和文件名的数组。然后,使用pop()方法获取文件名,并将其作为键存储在一个对象中,值为路径字符串。最后,通过筛选对象中值的数量大于1的键来获取文件名相同的路径。
以下是实现的代码示例:
const paths = [
'/xx/aa.t',
'/aa.t',
'/xx/xx/aa.t'
];
const fileNames = {};
paths.forEach(path => {
const parts = path.split('/');
const fileName = parts.pop();
if (fileName) {
if (fileNames[fileName]) {
fileNames[fileName].push(path);
} else {
fileNames[fileName] = [path];
}
}
});
const result = Object.values(fileNames).filter(paths => paths.length > 1);
console.log(result);
输出结果为:
[ [ '/xx/aa.t', '/xx/xx/aa.t' ], [ '/aa.t' ] ]
结果是一个二维数组,每个子数组中包含文件名相同的路径。在上面的示例中,/xx/aa.t和/xx/xx/aa.t具有相同的文件名aa.t,/aa.t是另一组文件名相同的路径。
原文地址: https://www.cveoy.top/t/topic/qfKf 著作权归作者所有。请勿转载和采集!