Answer
t.me/js_testОтвет:
WeakSet Date()
Объяснение:
Коллекция WeakSet
ведёт себя следующим образом:
- Она аналогична
Set
, но мы можем добавлять вWeakSet
только объекты (не примитивные значения). - Объект присутствует в множестве только до тех пор, пока доступен где-то ещё.
- Как и
Set
, она поддерживаетadd
,has
иdelete
, но неsize
,keys()
и не является перебираемой.
WeakSet
позволяет хранить набор сообщений и легко проверять наличие сообщения в нём.
Он очищается автоматически. Минус в том, что мы не можем перебрать его содержимое, не можем получить «все прочитанные сообщения» напрямую. Но мы можем сделать это, перебирая все сообщения и фильтруя те, которые находятся в WeakSet
.
Код для проверки:
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));