Перейти к основному содержимому
Модуль 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Загрузка…

Определите «НДС(цены, ставка)»: учитывая массив чисел и ставку (например, 0,22), верните массив с ценами, увеличенными на НДС. Используйте карту.

Загрузка редактора…
Показать подсказку

цены.map((p) => p * (1 + ставка))

Решение доступно после 3 попыток

Обзор упражнения

Упражнение#js.m6.l1.e2
Попыток: 0Загрузка…

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

Загрузка редактора…
Показать подсказку

Цепочка: .filter(...).map((p) => p.name)

Решение доступно после 3 попыток