Skip to content

Commit 85c6b0a

Browse files
committed
[LES-8.8/st-compl] array-destructuring
Practice with array "destructuring". Using "...rest", default values. Worth noting: - rewrite the values of variables using [a, b] = [b, a]. FS-dev: B-3 / JS basic
1 parent 66192ab commit 85c6b0a

File tree

1 file changed

+64
-0
lines changed
  • full-stack-dev/3-js-basic/8-arrays/8-8-array-destructuring

1 file changed

+64
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// Задание 1:
2+
// У тебя есть массив userData, который содержит имя пользователя, его фамилию и название города.
3+
// const userData = ["Сергей", "Петров", "Москва"];
4+
// Используя деструктуризацию, объяви три новые переменные: name, surname и city, и присвой им соответствующие значения из массива userData. После этого выведи каждую переменную в консоль, чтобы убедиться, что значения присвоены правильно.
5+
6+
const userData = ['Сергей', 'Петров', 'Москва'];
7+
const [firstName, lastName, city] = userData;
8+
9+
console.log(firstName); // "Сергей"
10+
console.log(lastName); // "Петров"
11+
console.log(city); // "Москва"
12+
13+
// Задание 2:
14+
// У нас есть массив scores с результатами игрока. Первый элемент — это имя игрока, а все остальные — его очки, набранные в разных раундах.
15+
// const scores = ["Alex", 55, 87, 91, 43];
16+
// Тебе нужно, используя деструктуризацию:
17+
// 1. Присвоить имя игрока переменной playerName.
18+
// 2. Все его очки (то есть все элементы, кроме первого) поместить в новый массив с именем playerScores.
19+
// Выведи обе переменные (playerName и playerScores) в консоль.
20+
21+
const scores = ['Alex', 55, 87, 91, 43];
22+
const [playerName, ...playerScores] = scores;
23+
24+
console.log(playerName); // "Alex"
25+
console.log(playerScores); // [ 55, 87, 91, 43 ]
26+
27+
// Задание 3:
28+
// Есть массив data, который содержит информацию о посте: ID поста, ID автора, а затем список тегов. Но иногда список тегов может быть пустым.
29+
// Твоя задача — используя деструктуризацию:
30+
// 1. Пропустить ID поста (первый элемент).
31+
// 2. Присвоить ID автора (второй элемент) переменной authorId.
32+
// 3. Присвоить первый тег (третий элемент) переменной primaryTag. Если тегов нет, primaryTag должна получить значение по умолчанию "general".
33+
// Выведи authorId и primaryTag в консоль для обоих вариантов массива data, чтобы проверить оба случая.
34+
35+
// const data = [101, 502, 'tech', 'code', 'javascript'];
36+
const data = [102, 503];
37+
38+
const [, authorId, primaryTag = 'general'] = data;
39+
40+
console.log(authorId); // 502
41+
console.log(primaryTag); // "tech"
42+
// или..
43+
console.log(authorId); // 503
44+
console.log(primaryTag); // "general"
45+
46+
// Задание 4:
47+
// Напиши функцию logPayment, которая принимает один аргумент — массив с информацией о платеже. Массив всегда имеет следующую структуру: [id_транзакции, сумма, валюта]. Иногда информация о валюте может отсутствовать.
48+
// Функция должна делать следующее:
49+
// 1. Принимать массив в качестве аргумента.
50+
// 2. Прямо в параметрах функции (в скобках ()) использовать деструктуризацию, чтобы:
51+
// - Пропустить ID транзакции.
52+
// - Извлечь сумму в переменную amount.
53+
// - Извлечь валюту в переменную currency. Если валюта не указана, ей должно присваиваться значение по умолчанию 'USD'.
54+
// 3. Функция должна возвращать отформатированную строку: Платёж на сумму: [сумма] [валюта].
55+
56+
const payment1 = [1201, 75, 'EUR'];
57+
const payment2 = [1202, 150];
58+
59+
function logPayment([, amount, currency = 'USD']) {
60+
return `Платёж на сумму: ${amount} ${currency}`;
61+
}
62+
63+
console.log(logPayment(payment1)); // "Платёж на сумму: 75 EUR"
64+
console.log(logPayment(payment2)); // "Платёж на сумму: 150 USD"

0 commit comments

Comments
 (0)