# Array.prototype.flatMap()
მეთოდი ჯერ ყოველ ელემენტს გადაუვლის მოცემული ფუნქციით(***map()*** მეთოდის ანალოგიურად) და შემდეგ აბტყელებს ***flat()*** მეთოდით, რომელსაც პარამეტრად გადაცემული აქვს 1. ფუნქცია მუშაობს აღნიშნული მეთოდების გამოყენების მსგავსად, თუმცა უფრო ეფექტურია, ვიდრე ცალ-ცალკე გადავლა. ბრუნდება ახალი მასივი.
## Syntax
// Arrow function
flatMap((currentValue) => { /* ... */ } )
flatMap((currentValue, index) => { /* ... */ } )
flatMap((currentValue, index, array) => { /* ... */ } )
// Callback function
flatMap(callbackFn)
flatMap(callbackFn, thisArg)
// Inline callback function
flatMap(function(currentValue) { /* ... */ })
flatMap(function(currentValue, index) { /* ... */ })
flatMap(function(currentValue, index, array){ /* ... */ })
flatMap(function(currentValue, index, array) { /* ... */ }, thisArg)
### Parameters
callbackFn - ფუნქცია, რომელიც ქმნის ახალი მასივის ელემენტებს. იღებს სამ პარამეტრს:
* currentValue - მასივის მოცემული ელემენტი
* index - ელემენტის ინდექსი
* array - მასივი, რომელიც იძახებს flatMap-ს
thisArg - მნიშვნელობა, რომელიც გამოიყენება, როგორც ***this*** callbackFn გამოძახებისას
## Examples
const number = 123456;
console.log(
number
.toString()
.split('')
.flatMap(elem => {
const sum = elem * elem;
if (sum.toString().length === 2) {
return [Number(String(sum)[0]), Number(String(sum)[1])];
}
return sum;
})
);
###### output
[1, 4, 9, 1, 6, 2, 5, 3, 6]