レッスンに戻る

既読の日時を保存

重要度: 5

前回のタスクと同様に、メッセージの配列が与えられています。状況は似ています。

let messages = [
  {text: "Hello", from: "John"},
  {text: "How goes?", from: "John"},
  {text: "See you soon", from: "Alice"}
];

ここで質問です。情報を格納するデータ構造として、あなたは「メッセージが読まれたとき」を格納するのに何を提案しますか?

前回のタスクでは、「はい/いいえ」という事実のみを格納すればよかったです。今回は日付を格納する必要があり、メッセージがガーベッジコレクションされるまでメモリに残るだけです。

追伸の日付は、後ほど説明する組み込みの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 object we'll study later