保存阅读日期
重要程度: 5
这儿有一个和 上一个任务 类似的 messages
数组。场景也相似。
let messages = [
{text: "Hello", from: "John"},
{text: "How goes?", from: "John"},
{text: "See you soon", from: "Alice"}
];
现在的问题是:你建议采用什么数据结构来保存信息:“消息是什么时候被阅读的?”。
在前一个任务中我们只需要保存“是/否”。现在我们需要保存日期,并且它应该在消息被垃圾回收时也被从内存中清除。
P.S. 日期可以存储为内建的 Date
类的对象,稍后我们将进行介绍。
我们可以使用 WeakMap
保存日期:
let messages = [
{text: "Hello", from: "John"},
{text: "How goes?", from: "John"},
{text: "See you soon", from: "Alice"}
];
let readMap = new WeakMap();
readMap.set(messages[0], new Date(2017, 1, 1));
// 我们稍后将学习 Date 对象