# 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]