Skip to content

Commit 35a0687

Browse files
committed
[LES-13.9/st-compl] destructuring-obj-rest-spread
Practice with "destructuring" obj's, using "...rest/spread" operators. Worth noting: - usability of "destructuring". FS-dev: B-3 / JS basic
1 parent 0438193 commit 35a0687

File tree

1 file changed

+56
-0
lines changed
  • full-stack-dev/3-js-basic/13-objects/13-9-destructuring-obj-rest-spread

1 file changed

+56
-0
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
// Задание 1:
2+
// Дан объект movie.
3+
// Твоя задача — используя деструктуризацию, создать три переменные:
4+
// 1. title (с названием фильма)
5+
// 2. year (с годом выпуска)
6+
// 3. movieDirector (с именем режиссёра, обрати внимание на переименование)
7+
// Напиши одну строку кода, которая решает эту задачу.
8+
9+
const movie = {
10+
title: 'Inception',
11+
director: 'Christopher Nolan',
12+
year: 2010,
13+
rating: 8.8,
14+
};
15+
16+
const { title, year, director: movieDirector } = movie;
17+
console.log(`Фильм "${title}", ${year}. ${movieDirector}`); // "Фильм "Inception", 2010. Christopher Nolan"
18+
19+
// Задание 2:
20+
// У нас есть два объекта. Один содержит базовую информацию о пользователе, а второй — обновления для него.
21+
// Твоя задача — создать новый объект finalUser, который будет содержать все свойства из baseUser, но с применёнными изменениями из объекта updates. Используй ...spread оператор.
22+
23+
const baseUser = {
24+
id: 123,
25+
name: 'Alex',
26+
role: 'editor',
27+
};
28+
29+
const updates = {
30+
name: 'Alexander', // Обрати внимание, имя должно обновиться
31+
status: 'active', // А это свойство должно добавиться
32+
};
33+
34+
const finalUser = {
35+
...baseUser,
36+
...updates,
37+
};
38+
39+
console.log(finalUser); // { id: 123, name: 'Alexander', role: 'editor', status: 'active' }
40+
41+
// Задание 3:
42+
// У нас есть объект с полной информацией о пользователе.
43+
// Твоя задача — извлечь id и username в отдельные переменные, а все остальные свойства собрать в новый объект под названием userData. Используй деструктуризацию вместе с ...rest.
44+
45+
const userProfile = {
46+
id: 'a1b2-c3d4',
47+
username: 'webdev_pro',
48+
49+
firstName: 'Maria',
50+
lastName: 'Ivanova',
51+
};
52+
53+
const { id, username, ...userData } = userProfile;
54+
55+
console.log(`id: ${id}, username: ${username}`); // "id: a1b2-c3d4, username: webdev_pro"
56+
console.log(userData); // { email: 'dev@example.com', firstName: 'Maria', lastName: 'Ivanova' }

0 commit comments

Comments
 (0)