In JavaScript, the flatMap
method is a powerful tool for working with arrays. It can be used to both map over an array and flatten it at the same time. This can be incredibly useful when working with nested arrays or when you need to combine the results of mapping over an array into a single array. In this tutorial, we will explore how to use the flatMap
method in JavaScript, as well as some practical examples of where it can be useful.
What is flatMap
?
The flatMap
method is a combination of map
and flat
methods in JavaScript. It first maps over an array using a provided function, then flattens the resulting array using one level of flattening. This means that if the mapping function returns an array, flatMap
will flatten that array and return the result.
How to use flatMap
The syntax for using the flatMap
method is simple. It is called on an array and takes a mapping function as its argument. The mapping function is then applied to each element of the array, and the results are concatenated into a single array.
const arr = [1, 2, 3];
const result = arr.flatMap((num) => [num, num * 2]);
console.log(result); // [1, 2, 2, 4, 3, 6]
In this example, we have an array arr
with three elements. We then use flatMap
to map over each element, doubling the number, and return a new array using the mapping function (num) => [num, num * 2]
. The result is a flattened array [1, 2, 2, 4, 3, 6]
.
Practical examples of using flatMap
Flatten nested arrays
One common use case for flatMap
is flattening nested arrays. For example, if you have an array of arrays and you want to flatten it into a single array, you can use flatMap
to achieve this.
const nestedArr = [[1, 2], [3, 4], [5, 6]];
const flattenedArr = nestedArr.flatMap((innerArr) => innerArr);
console.log(flattenedArr); // [1, 2, 3, 4, 5, 6]
In this example, we have an array of arrays nestedArr
. We use flatMap
to iterate over each inner array and return it as is. The result is a flattened array [1, 2, 3, 4, 5, 6]
.
Filtering out empty values
You can also use flatMap
to filter out empty values from an array. For example, if you have an array with some empty strings and you want to remove them, you can use flatMap
with a filtering function.
const arrWithEmptyValues = [1, '', 2, '', 3, ''];
const filteredArr = arrWithEmptyValues.flatMap((val) => val ? val : []);
console.log(filteredArr); // [1, 2, 3]
In this example, we have an array arrWithEmptyValues
with some empty strings. We use flatMap
to filter out the empty values by checking if the value is truthy, and return it if it is. The result is an array with empty values removed [1, 2, 3]
.
Conclusion
The flatMap
method in JavaScript is a powerful tool for working with arrays. It combines the functionality of map
and flat
methods, allowing you to map over an array and flatten it in a single step. It can be useful for working with nested arrays, combining mapped results, or filtering out certain values from an array. By understanding how to use flatMap
effectively, you can write more concise and expressive code in your JavaScript applications.
зойчем?
Очень часто??? Ну… Никогда не встречаются, если тебе прислали данные в таком виде, то страшно представить что вообще происходит на проекте
только вот обычный флэт может развернуть любую вложенность, а флэтмэп только 1 уровень вложенности, это важный момент, который следовало бы упомянуть)
меня про этот метод на собесе спрашивали
раскрою тайну небольшую – это всего лишь синтаксический сахар. а еще раскрою другую тайну – методы можно чейнить.
🎉
Просто не делать такие убогие массивы не пробовали?
супер, а если название ключа неизвестно?))
Спасибо за интересный контент! Есть такой вопрос: На моем SafePal кошельке хранится USDT и у меня есть seed фраза. (alarm fetch churn bridge exercise tape speak race clerk couch crater letter). Как правильно перевести их на Binance?
🔥🔥🔥🔥🔥
В реальной разработке нет таких данных. Все это по сути ошибки проектирования на бэк.
Крутой супер сеньор 🦾🦾🦾🦾💪💪💪💪💪
flatMap классный метод но медленный. Если не критична скорость то с помощью flatMap удобно заменять комбинацию нескольких методов map и filter .
[, , , ].flatMap(x => x ? [x] : [])
Получается можно заменить рекурсию для поиска в глубину?
flatMap тоже "бегает" по массиву 😅
Плоские и Объёмные 😂😂😂
Впервые узнал про метод flat!