Перейти до основного вмісту
Модуль 6 · Урок 1 із 421/32 у курсі~10 min
Модульні уроки (1/4)

карту та фільтр

Два основних методи: вони перетворюють масив на новий масив, не змінюючи вихідний.

map: трансформувати кожен елемент

Він приймає функцію, застосовує її до кожного елемента та повертає масив такої ж довжини з результатами.

JS
const numeri = [1, 2, 3, 4];

const doppi = numeri.map((n) => n * 2);
// [2, 4, 6, 8]

const stringhe = numeri.map((n) => `n=${n}`);
// ['n=1', 'n=2', 'n=3', 'n=4']

Оригінал залишається недоторканим:

JS
numeri; // [1, 2, 3, 4]  ← unchanged

filter: виберіть підмножину

Він приймає предикат (функцію, яка повертає true/false). Він зберігає лише елементи, для яких присудок істинний.

JS
const numeri = [1, 2, 3, 4, 5, 6];

const pari = numeri.filter((n) => n % 2 === 0);
// [2, 4, 6]

const grandi = numeri.filter((n) => n > 3);
// [4, 5, 6]

Поєднання двох

Класичний конвеєр: фільтр, потім трансформація.

JS
const prezzi = [12, 5, 100, 30, 7];

const grandiDoppi = prezzi.filter((p) => p > 10).map((p) => p * 2);
// [24, 200, 60]

Спробуйте

вправи#js.m6.l1.e1
Спроби: 0Завантаження…

Визначте `vat(prices, rate)`: задано масив чисел і ставку (наприклад, 0,22), поверніть масив із цінами, збільшеними на ПДВ. Використовуйте карту.

Завантаження редактора…
Показати підказку

prices.map((p) => p * (1 + курс))

Рішення доступне після 3 спроб

Повторна вправа

вправи#js.m6.l1.e2
Спроби: 0Завантаження…

Визначте `adultNames(people)`: ви отримуєте масив об’єктів { name, age } і повертаєте масив імен людей віком >= 18. Використовуйте фільтр + карту.

Завантаження редактора…
Показати підказку

Ланцюжок: .filter(...).map((p) => p.name)

Рішення доступне після 3 спроб