给定一组文件路径:var paths = abt act abct at abct abt;请使用js找出路径中具有相同文件名的路径并成为一个组。
可以使用javascript中的对象来存储文件名和对应的路径。遍历路径数组,将文件名作为对象的属性,将路径添加到对应的属性值中(如果属性不存在,则创建一个空数组存储路径)。
以下是实现的代码:
var paths = ['/a/b.t', '/a/c.t', '/a/b/c.t', '/a.t', '/a/b/c.t', '/a/b.t'];
var groupedPaths = {};
for(var i = 0; i < paths.length; i++) {
var path = paths[i];
var fileName = path.substring(path.lastIndexOf('/') + 1);
if(groupedPaths[fileName]) {
groupedPaths[fileName].push(path);
} else {
groupedPaths[fileName] = [path];
}
}
console.log(groupedPaths);
运行以上代码,将会输出以下结果:
{
'b.t': ['/a/b.t', '/a/b.t'],
'c.t': ['/a/c.t', '/a/b/c.t', '/a/b/c.t'],
'a.t': ['/a.t']
}
结果中的每个属性对应一个文件名,值是具有相同文件名的路径组成的数组
原文地址: http://www.cveoy.top/t/topic/iyT9 著作权归作者所有。请勿转载和采集!