obsidian社区插件
Dataview 实战 - 查找重名文件
插件ID:dataview%E5%AE%9E%E6%88%98-%E6%9F%A5%E6%89%BE%E9%87%8D%E5%90%8D%E6%96%87%E4%BB%B6
dataview%E5%AE%9E%E6%88%98-%E6%9F%A5%E6%89%BE%E9%87%8D%E5%90%8D%E6%96%87%E4%BB%B6
dataview%E5%AE%9E%E6%88%98 %E6%9F%A5%E6%89%BE%E9%87%8D%E5%90%8D%E6%96%87%E4%BB%B6:利用dv查找库中的重名文件
Dataview 实战 - 查找重名文件
效果
代码
// 假设您的对象数组为 data
const data = dv.pages();
let countMap = {}; // 用于存储计数的对象
let duplicates = []; // 用于存储重复元素的数组
// 遍历对象数组
data.forEach((element) => {
let fileName = element.file.name;
let filePath = element.file.path;
// 计数
if (countMap[fileName]) {
countMap[fileName].count++;
countMap[fileName].paths.push(filePath);
} else {
countMap[fileName] = { count: 1, paths: [filePath] };
}
});
let dup=0//这是发现了几个dup的name
let flag =0//有重名文件的标志
for (const key in countMap) {
const element = countMap[key];
if (element.count > 1) {
dup++;
if(dup>0&&flag==0){dv.paragraph("==有重名文件==");flag=1}
dv.span(`《${key}.md》出现了${element.count}次`);
const pathstolink = element.paths.map(path => `[[${path}]]`);
dv.list(pathstolink);
}
}
if(dup==0){
dv.span("没有重名文件")
}
讨论
若阁下有独到的见解或新颖的想法,诚邀您在文章下方留言,与大家共同探讨。
反馈交流
其他渠道
版权声明
版权声明:所有 PKMer 文章如果需要转载,请附上原文出处链接。