flatMap მეთოდი

flatMap მეთოდი აბრუნებს ახალ მასივს, რომელიც შექმნილია მას შემდეგ რაც საწყისი მასივის თითოეულ ელემენტზე გამოიძახეს ქოლბექი, რომელიც მითითებულია მეთოდის პარამეტრში. პირველი შეხედვით flatMap მეთოდი map მეთოდს ჰგავს, მაგრამ მისი მთავარი განსხვავება ისაა, რომ ის ყოველთვის აბრუნებს ერთგანზომილებიან მასივს.

სინტაქსი

javascriptlet newArray = მასივი.flatMap(ფუნქცია);

მაგალითი

მოდით მივიღოთ ახალი მასივი, flatMap მეთოდის გამოყენებით:

javascriptlet arr = ['a', 'b', 'c'];

let res = arr.flatMap(function(elem) {
  return elem + '!';
});

console.log(res);

კოდის შესრულების შედეგი:

javascript['a!', 'b!', 'c!']

მაგალითი

მოდით მივიღოთ ახალი მასივი რიცხვებისაგან შემდგარი საწყისი მასივიდან:

javascriptlet arr = [1, 2, 3, 4, 5];

let res = arr.flatMap(function(elem) {
  return elem + 2;
});

console.log(res);

კოდის შესრულების შედეგი:

javascript[3, 4, 5, 6, 7]

მაგალითი

მოდით ვცადოთ flatMap მეთოდის გამოყენება პირველი დონის ჩადგმულობის მქონე მასივზე:

javascriptlet arr = [1, 2, 3, [4, 5]];

let res = arr.flatMap(function getElem(elem){
  return elem + 2;
});

console.log(res);

კოდის შესრულების შემდეგ ჩვენ ვნახავთ, რომ ფუნქციის პირობები გამოყენებული იქნა ქვემასივზე, რომელიც ჩათვლილი იქნა როგორც ერთი ელემენტი. ამიტომ ამ მეთოდის გამოძახებას ჩადგმულ მასივებში აზრი არ აქვს:

javascript[3, 4, 5, '4,52']

მაგალითი

თუ ჩვენ გვინდა, რომ ჩადგმულობის დონეზე არ ვიფიქროთ, არამედ გავაერთიანოთ მთელი მასივი, გამოვიყენოთ Infinity პარამეტრი:

javascriptlet arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];

let res = arr.flatMap(Infinity);

console.log(res);

კოდის შესრულების შედეგი:

javascript[
  'a', 'b', 'c',
  'd', 'e', 'f',
  'g', 'h', 'i'
]

მაგალითი

მოდით გამოვიყენოთ ორი მეთოდი მასივზე: flatMap და map, ხოლო ორივე მეთოდის პარამეტრში იქნება მითითებული ფუნქცია, რომელიც მასივს ორგანზომილებიანს ხდის:

javascriptlet arr = [1, 2, 3, 4, 5, 6];
let res1 = arr.map(elem => [elem * 3]);
let res2 = arr.flatMap(elem => [elem * 3]);

console.log('map მეთოდი', res1);
console.log('flatMap მეთოდი', res2);

კოდის შესრულების შედეგი:

javascript'map მეთოდი' [[3], [6], [9], [12], [15], [18]]
'flatMap მეთოდი' [3, 6, 9, 12, 15, 18]

იხილეთ აგრეთვე

  • flat მეთოდი,
    რომელიც აბრუნებს მასივს ქვემასივებიდან