产品设计

Capacities:让零散笔记沿着项目重新连起来

Capacities 是面向个人的笔记与知识管理工具。它把会议、人物和项目等内容组织成可以互相连接的对象,方便从一个主题回到相关记录。

先尝试拆解问题、设计和实现,再展开思路,检查状态、边界与取舍,并设计验证用例。思路提供分析路径,不给出完整实现。

01
代码思考

找出关联某个项目的笔记

请写一个函数,从笔记列表中找出属于指定项目的笔记。每条笔记都有字符串编号 id 和字符串列表 projectIds;输入数据的字段都完整。

  1. 输入与输出: 输入笔记列表和一个项目编号,返回匹配笔记的 id 列表。例如笔记为 [{id: "N1", projectIds: ["P1"]}, {id: "N2", projectIds: ["P2", "P1"]}, {id: "N3", projectIds: []}],项目编号为 "P1",预期输出 ["N1", "N2"]。
  2. 规则: 项目编号按字符串完全相同来匹配,输出顺序与输入笔记顺序一致。笔记编号互不重复;没有匹配或输入为空时返回 []。
  3. 交付: 编写函数,用示例、项目编号 "P3" 和空笔记列表核对结果。使用本地数据即可。
查看思路
  1. 对每条笔记判断目标项目编号是否出现在它的 projectIds 中。
  2. 保留匹配笔记的编号,并维持原来的先后顺序。
  3. 手工核对示例得到 N1、N2,再检查没有匹配和空列表的结果。