Метод flatMap()
Метод flatMap(callback)
- аналогічний методу map()
, але застосовується у випадках, коли результат - це багатовимірний масив, який необхідно «розгладити».
массив.flatMap((element, index, array) => {
// Тіло колбек-функції
});
У масиві students
зберігається список студентів зі списком предметів, які відвідує студент, у властивості courses
. Кілька студентів можуть відвідувати один і той самий предмет. Необхідно скласти список всіх предметів, які відвідує ця група студентів, поки що, навіть повторюваних.
const students = [
{ name: "Манго", courses: ["математика", "фізика"] },
{ name: "Полі", courses: ["інформатика", "математика"] },
{ name: "Ківі", courses: ["фізика", "біологія"] },
];
students.map(student => student.courses);
// [['математика', 'фізика'], ['інформатика', 'математика'], ['фізика', 'біологія']]
students.flatMap(student => student.courses);
// ['математика', 'фізика', 'інформатика', 'математика', 'фізика', 'біологія'];
Він викликає колбек-функцію для кожного елемента вихідного масиву, а результат її роботи записує у новий масив. Відмінність від map()
у тому, що новий масив «розгладжується» на глибину, що дорівнює одиниці (одна вкладеність). Цей розгладжений масив і є результатом роботи flatMap()
.