JavaScript
  • 🧑‍💻Full-Stack Web Developer
  • 📚Теорія
    • 1️⃣Змінні і типи
      • Знайомство з JavaScript
      • Інструменти розробника
      • Підключення скрипту
      • Основи синтаксису
      • Змінні і типи
      • Взаємодія з користувачем
      • Основні оператори
      • Числа
      • Рядки
      • Логічні операції
    • 2️⃣Розгалудження і цикли
      • Розгалуження
      • Тернарний оператор
      • Інструкція switch
      • Область видимості
      • Цикли
    • 3️⃣Масиви
      • Масиви
      • Ітерація по масиву
      • Присвоєння за посиланням і значенням
      • Методи масиву
    • 4️⃣Функції
      • Функції
      • Стек викликів
    • 5️⃣Обʼєкти
      • Обʼєкти
      • Перебирання обʼєкта
      • Масив обʼєктів
      • Операції spread і rest
      • Деструктуризація обʼєктів
      • Деструктуризація масивів
      • Паттерн "обʼєкт параметрів"
    • 6️⃣Колбек-функції, стрілкові функції, перебір масиву
      • Колбек-функції
      • Метод forEach
      • Стрілкові функції
      • Підходи до написання коду
      • Чисті функції
    • 7️⃣Перебираючі методи масивів
      • Перебираючі методи масиву
      • Метод map()
      • Метод flatMap()
      • Метод filter()
      • Метод find()
      • Метод findIndex()
      • Методи every() і some()
      • Метод reduce()
      • Метод sort()
      • Ланцюжки методів
    • 8️⃣Контекст, прототипи та класи
      • Контекст виконання функції
      • Правила визначення this
      • Методи функцій
      • Об'єктно-орієнтоване програмування
      • Прототипне наслідування
    • Класи
  • 👷Практика
    • 👷Практика
    • Page 1
  • Про мене
    • Про мене
Powered by GitBook
On this page
  1. Теорія
  2. Перебираючі методи масивів

Метод flatMap()

PreviousМетод map()NextМетод filter()

Last updated 1 year ago

Метод flatMap() схожий за принципом на метод map(). Він використовується для трансформації кожного елемента багатовимірного масиву за допомогою переданої функції та розгортає (вирівнює) результат в одному рівні глибини.

Синтаксис методу flatMap():

const newArray = outputArray.flatMap((element, index, array) => {
    // Повернути трансформований елемент
});

Припустимо у нас є масив з обʼєктами користувачів в яких є властивість languages в якій у формі масивів перераховані мови, які знає користувач. Мови у користувачів можуть повторюватися. А необхідно скласти всі ці мови в один одновимірний масив. Примітка - елементи можуть повторюватися.

Приклад

const users = [
  { name: "Alex", languages: ["ua", "en", "es"] },
  { name: "Mathew", languages: ["ua", "fr", "jp"] },
  { name: "Angelina", languages: ["fr", "en", "de", "it"] },
];

const usersLanguages = users.flatMap((el) => el.languages);

console.log(usersLanguages);
// ['ua', 'en', 'es', 'ua', 'fr', 'jp', 'fr', 'en', 'de', 'it']

Якби ми використали метод map(), то отримали б такий результат. Наведемо, щоб побачити різницю між цими методами.

const usersLanguages = users.map((el) => el.languages);

console.log(usersLanguages);
// [['ua', 'en', 'es'], ['ua', 'fr', 'jp'], ['fr', 'en', 'de', 'it']]

Цей метод корисний, коли необхідно виконати мапування (трансформацію) елементів масиву та вирівняти результат, отриманий після цього мапування.

📚
7️⃣