Skip to content

Commit d318ddd

Browse files
committed
[LES-3.5/st-compl] ways-to-fill-map-obj
Practice with "Object.entries/fromEntries(), Array.from(), filter()". Worth noting: - all this lesson/practice (note the solutions). FS-dev: B-4 / JS advanced
1 parent 67f730e commit d318ddd

File tree

1 file changed

+47
-0
lines changed
  • full-stack-dev/4-js-advanced/3-set-and-map/3-5-ways-to-fill-map-obj

1 file changed

+47
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
'use strict';
2+
3+
// Задание 1:
4+
// 1. Создай переменную priceMap (типа Map) на основе pricesObj.
5+
// 2. Добавь в эту мапу новый товар 'grape' с ценой 300.
6+
// 3. Преобразуй получившуюся мапу обратно в обычный объект и сохрани в переменную finalObj.
7+
// 4. Выведи finalObj в консоль.
8+
9+
const pricesObj = {
10+
banana: 100,
11+
apple: 200,
12+
pear: 150,
13+
};
14+
15+
const priceMap = new Map(Object.entries(pricesObj));
16+
priceMap.set('grape', 300);
17+
18+
const finalObj = Object.fromEntries(priceMap);
19+
20+
console.log(finalObj); // { banana: 100, apple: 200, pear: 150, grape: 300 }
21+
22+
// Задание 2:
23+
// Нам нужно подготовить простой объект для отправки на сервер, но в него должны попасть только студенты, которые сдали экзамен (балл 50 и выше).
24+
// 1. Создай scoresMap через литеральное наполнение (массив массивов) с данными:
25+
// - 'Ivan': 40
26+
// - 'Anna': 85
27+
// - 'Oleg': 55
28+
// 2. Используя цепочку методов (конвертация в массив -> фильтрация -> конвертация в объект), создай переменную passedObj.
29+
// 3. В passedObj должны остаться только Anna и Oleg в формате обычного объекта.
30+
// Подсказка: Object.fromEntries() умеет "съедать" не только Map, но и обычный массив пар, который вернёт тебе .filter().
31+
32+
const scoresMap = new Map([
33+
['Ivan', 40],
34+
['Anna', 85],
35+
['Oleg', 55],
36+
]);
37+
38+
// console.log(scoresMap); // Map(3) { 'Ivan' => 40, 'Anna' => 85, 'Oleg' => 55 }
39+
// console.log(Array.from(scoresMap)); // [ [ 'Ivan', 40 ], [ 'Anna', 85 ], [ 'Oleg', 55 ] ]
40+
// console.log([...scoresMap]); // [ [ 'Ivan', 40 ], [ 'Anna', 85 ], [ 'Oleg', 55 ] ]
41+
42+
const passedObj = Object.fromEntries(
43+
// [...scoresMap].filter(([_, score]) => score > 50)
44+
Array.from(scoresMap).filter(([_, score]) => score > 50)
45+
);
46+
47+
console.log(passedObj); // { Anna: 85, Oleg: 55 }

0 commit comments

Comments
 (0)