You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// 2. Добавь в неё данные (используя метод .set()):
25
+
// - Ключ 1 (число) -> Значение 'Admin ID'
26
+
// - Ключ 'theme' (строка) -> Значение 'dark'
27
+
// - Ключ true (булево) -> Значение 'isActive'
28
+
// 3. Выведи в консоль значение, которое лежит под ключом 1 (число).
29
+
// 4. Выведи в консоль значение, которое лежит под ключом 'theme'.
30
+
// Цель: Привыкнуть к методам .set() и .get() и убедиться, что число 1 работает как ключ.
31
+
32
+
constsettings=newMap();
33
+
34
+
settings.set(1,'Admin ID');
35
+
settings.set('theme','dark');
36
+
settings.set(true,'isActive');
37
+
38
+
console.log(settings.get(1));// "Admin ID"
39
+
console.log(settings.get('theme'));// "dark"
40
+
41
+
// Задание 3:
42
+
// 1. Дан обычный объект prices.
43
+
// 2. Создай переменную priceMap (типа Map), инициализировав её данными из prices. Подсказка: используй Object.entries(prices) внутри конструктора new Map(...).
44
+
// 3. Добавь в этот Map новый товар: orange с ценой 300.
45
+
// 4. Преобразуй полученный Map обратно в обычный объект updatedPrices. Подсказка: используй Object.fromEntries(...).
// - Шаг А: Проверяет, есть ли результат для этого user в cache. Если есть — возвращает его (и выводит в консоль "Взято из кеша").
122
+
// - Шаг Б: Если нет — генерирует случайное число (Math.random()), сохраняет его в cache для этого юзера и возвращает (выводит в консоль "Вычисляю...").
123
+
// 3. Создай объект alex = { name: 'Alex' }.
124
+
// 4. Вызови функцию 2 раза подряд для alex.
125
+
// Ожидание: первый раз — "Вычисляю...", второй раз — "Взято из кеша".
126
+
127
+
constcache=newWeakMap();
128
+
129
+
functionprocessUser(user){
130
+
if(cache.has(user)){
131
+
console.log('Взято из кеша');
132
+
returncache.get(user);
133
+
}else{
134
+
constnum=Math.random();
135
+
cache.set(user,num);
136
+
console.log('Вычисляю...');
137
+
returnnum;
138
+
}
139
+
}
140
+
141
+
constalex={name: 'Alex'};
142
+
143
+
processUser(alex);// "Вычисляю..."
144
+
processUser(alex);// "Взято из кеша"
145
+
146
+
// Задание 8:
147
+
// Мы делаем чат. Нужно помечать сообщения как "прочитанные", не меняя сами объекты сообщений (не добавляя в них свойство isRead: true).
148
+
// 1. Создай два объекта сообщений: let msg1 = { text: 'Привет!' }; let msg2 = { text: 'Как дела?' };
149
+
// 2. Создай коллекцию readMessages, используя WeakSet.
150
+
// 3. Пользователь прочитал первое сообщение: добавь msg1 в readMessages.
151
+
// 4. Напиши функцию isRead(msg), которая принимает сообщение и возвращает true (если прочитано) или false (если нет).
152
+
// 5. Проверь оба сообщения через эту функцию и выведи результат.
0 commit comments