Skip to content

Commit 642d785

Browse files
committed
[LES-8.4/st-compl] array-modifications
Practice with "slice(), splice(), concat(), reverse()" methods. Worth noting: - different ways to make a "shallow" copy of an array. FS-dev: B-3 / JS basic
1 parent 2b360ab commit 642d785

File tree

1 file changed

+48
-0
lines changed
  • full-stack-dev/3-js-basic/8-arrays/8-4-array-modifications

1 file changed

+48
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// Задание 1:
2+
// Есть массив, в котором хранятся все действия пользователя за сессию. Вам нужно получить три последних действия, не изменяя при этом основной массив со всеми логами.
3+
// Используйте метод slice(), чтобы решить эту задачу.
4+
5+
const allLogs = [
6+
'Зашел на сайт',
7+
'Открыл каталог',
8+
'Добавил товар в корзину',
9+
'Перешел к оплате',
10+
'Оплатил заказ',
11+
'Вышел с сайта',
12+
];
13+
14+
const lastThreeLogs = allLogs.slice(-3);
15+
16+
console.log(lastThreeLogs); // [ 'Перешел к оплате', 'Оплатил заказ', 'Вышел с сайта' ]
17+
console.log(allLogs); // [ 'Зашел на сайт', 'Открыл каталог', 'Добавил товар в корзину', 'Перешел к оплате', 'Оплатил заказ', 'Вышел с сайта' ]
18+
19+
// Задание 2:
20+
// Есть список дел на день. Оказалось, что задачу 'Поработать' нужно разбить на две более конкретные: 'Написать отчет' и 'Провести встречу'.
21+
// Нужно заменить один элемент ('Поработать') на два новых. Используйте для этого метод splice().
22+
23+
let tasks = [
24+
'Проснуться',
25+
'Сделать зарядку',
26+
'Приготовить завтрак',
27+
'Поработать',
28+
'Пообедать',
29+
];
30+
31+
const removedTask = tasks.splice(3, 1, 'Написать отчет', 'Провести встречу');
32+
33+
console.log(tasks); // Ожидаемый результат: ['Проснуться', 'Сделать зарядку', 'Приготовить завтрак', 'Написать отчет', 'Провести встречу', 'Пообедать']
34+
console.log(removedTask); // [ 'Поработать' ]
35+
36+
// Задание 3:
37+
// Есть массив topUsers с именами лучших пользователей, отсортированный от лучшего к худшему. Вам нужно создать новый массив reversedUsers с тем же списком, но в обратном порядке (от худшего к лучшему).
38+
// Ключевое условие: исходный массив topUsers не должен измениться.
39+
// Подумайте, как можно использовать изученные методы, чтобы "безопасно" перевернуть массив.
40+
41+
const topUsers = ['Мария', 'Алексей', 'Екатерина', 'Иван'];
42+
43+
// const reversedUsers = [].concat(topUsers).reverse();
44+
// const reversedUsers = [...topUsers].reverse();
45+
const reversedUsers = topUsers.slice().reverse();
46+
47+
console.log(reversedUsers); // ['Иван', 'Екатерина', 'Алексей', 'Мария']
48+
console.log(topUsers); // ['Мария', 'Алексей', 'Екатерина', 'Иван']

0 commit comments

Comments
 (0)