Уроки модуля (1/4)
карта и фильтр
Два основных метода: они преобразуют массив в новый массив без изменения исходного.
map: преобразовать каждый элемент
Он принимает функцию, применяет ее к каждому элементу и возвращает массив той же длины. с результатами.
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']Оригинал остается нетронутым:
numeri; // [1, 2, 3, 4] ← unchangedfilter: выберите подмножество
Требуется предикат (функция, возвращающая true/false). Он сохраняет только те элементы, для которых предикат истинен.
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]Объединение двух
Классический конвейер: фильтруйте, затем преобразуйте.
const prezzi = [12, 5, 100, 30, 7];
const grandiDoppi = prezzi.filter((p) => p > 10).map((p) => p * 2);
// [24, 200, 60]Попробуйте это
Определите «НДС(цены, ставка)»: учитывая массив чисел и ставку (например, 0,22), верните массив с ценами, увеличенными на НДС. Используйте карту.
Показать подсказку
цены.map((p) => p * (1 + ставка))
Решение доступно после 3 попыток
Обзор упражнения
Определите `adultNames(people)`: вы получаете массив объектов { name, age } и возвращаете массив имен людей с возрастом >= 18. Используйте фильтр + карту.
Показать подсказку
Цепочка: .filter(...).map((p) => p.name)
Решение доступно после 3 попыток