请仔细说明自己遇到的问题,以下是参考模板。这里不要求非得按模板发帖,但内容中包含相关要素能让大家更好地帮助你。
遇到的问题
目前如下代码把已完成的task都汇总了:
let tasks = dv.pages('"项目"')
.file
.tasks
.where(t => t.text.includes("") || t.text.includes("关键词2"))
.array()
// 按文件名分组
let groupedTasks = tasks.reduce((groups, task) => {
const key = task.header.path; // 使用任务的 path 作为分组键
(groups[key] = groups[key] || []).push(task);
return groups;
}, {});
// 将分组后的对象转换为数组,并按照键名倒序排序
let sortedGroupedTasks = Object.entries(groupedTasks)
.sort(([keyA], [keyB]) => keyB.localeCompare(keyA)) // 按键名倒序排序
.reduce((sortedGroups, [key, value]) => {
sortedGroups[key] = value; // 重新构建对象
return sortedGroups;
}, {});
Object.entries(sortedGroupedTasks).forEach(([key, tasks]) => {
dv.taskList(tasks);
});
预期的效果
需要筛除掉已完成部分task,保留未完成部分task。
已尝试的解决方案
问了通义灵码:得到以下两种修改方式:
1.
let tasks = dv.pages('"项目"')
.file
.tasks
.where(t => !t.text.startsWith('[x]') && !t.text.startsWith('[-]') && (t.text.includes("") || t.text.includes("关键词2")))
.array();
// 原来的分组、排序和显示代码保持不变...
let tasks = dv.pages('"项目"')
.file
.tasks
.where(t => !t.done && (t.text.includes("") || t.text.includes("关键词2")))
.array();
// 接下来是分组、排序和显示代码...
以上两种代码都把已完成和未完成的的task汇总在一起了
请朋友们指教 如何修改
