课程 278 / 365
76%
正文已完成
L278为课程进度设计列表与映射模型
把真实需求落成一份含顺序、索引、更新规则和异常处理的数据模型。
可用的数据模型需要定义列表保存什么、映射的键和值是什么、二者如何同步,以及缺失或重复数据怎样处理。一句“用 Map”还不足以指导实现。
能为同时需要有序展示与按 ID 更新的场景交付一份可实现的数据结构方案。
核心概念
先把关键判断说清楚
单一事实来源
同一字段不要在多个结构里独立维护;否则一次更新可能留下互相矛盾的值。
索引可以重建
列表是事实集合时,按 ID 的映射可以由列表生成;可重建索引不应被当成第二份业务事实。
异常规则属于模型
重复 ID、未知 ID 和删除后的引用必须在方案里明确,而不是留给实现者临场猜测。
案例拆解
365 节课程的本地进度模型
课程目录按固定顺序展示,但浏览器进度会凭课程 ID 单独写入并读取。
- 01
课程蓝图用有序列表保存 ID、标题和篇章顺序。
- 02
进度用课程 ID 到状态记录的映射保存,不复制课程标题。
- 03
渲染时遍历课程列表并读取映射;未知进度 ID 被隔离并记录,而不是插入目录。
案例结果
课程结构保持稳定,进度可独立更新,旧数据也不会改变目录事实。
提交前练习
现在轮到你
设计一个同时支持顺序浏览和按 ID 更新的数据模型。
内容会自动保存在当前设备
查看参考答案与评分标准
参考答案
项目列表保存项目 ID 的显示顺序;项目详情映射以 ID 为键保存唯一对象;排序只改 ID 列表,详情更新只改映射;重复 ID 拒绝写入,未知 ID 显示缺失占位并记录。
评分标准
- 列表和映射职责不重叠
- 同步规则覆盖增删改
- 异常输入有显式处理
本课收口 · 学习证据
完成,不等于随手打一个勾。
确认阅读、保存练习,再用 30 秒检查和一句话总结留下真实学习证据。
02完成本课练习0 / 4 项必填内容已填写
03通过理解检查约 30 秒
你现在更接近哪一种状态?
完成上面三项后,才能把本课记为已验证。
资料来源
继续核对与延伸阅读
本课内容最近更新于 。
- MDN Web Docs↗reference · 核对日期 2026-08-23
- JSON Schema Core Specification 2020-12↗standard · 核对日期 2026-08-23