flatMap metodu

flatMap metodu parametrdə göstərilən geri çağırış funksiyası ilə hər bir massiv elementinə tətbiq edildikdən sonra yaradılan yeni massivi qaytarır. İlk baxışdan flatMap metodu map metoduna bənzəyir, lakin onun əsas fərqi həmişə birölçülü massiv qaytarmasıdır.

Sintaksis

javascriptlet newArray = massiv.flatMap(funksiya);

Nümunə

Gəlin flatMap metodundan istifadə edərək yeni massiv əldə edək:

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

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

console.log(res);

Kodun icrasının nəticəsi:

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

Nümunə

Gəlin rəqəmlərdən ibarət olan orijinal massivdən yeni massiv əldə edək:

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

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

console.log(res);

Kodun icrasının nəticəsi:

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

Nümunə

Gəlin flatMap metodunu ilk daxili səviyyəsi olan massivə tətbiq etməyə çalışaq:

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

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

console.log(res);

Kodu icra etdikdən sonra görərik ki, funksiyanın şərtləri altmassivə, onu bir element kimi hesablayaraq tətbiq olunub. Buna görə də bu metodun çağırılması daxili massivlərdə mənasızdır:

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

Nümunə

Əgər biz daxili səviyyə ilə məşğul olmaq istəmiriksə, amma bütün massivi birləşdirmək istəyiriksə, onda Infinity parametrindən istifadə edirik:

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

let res = arr.flatMap(Infinity);

console.log(res);

Kodun icrasının nəticəsi:

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

Nümunə

Gəlin massivə iki metodu tətbiq edək: flatMap və map, həm də hər iki metodun parametrində massivi ikiólçülü edən funksiya göstəriləcək:

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 metodu', res1);
console.log('flatMap metodu', res2);

Kodun icrasının nəticəsi:

javascript'map metodu' [[3], [6], [9], [12], [15], [18]]
'flatMap metodu' [3, 6, 9, 12, 15, 18]

Həmçinin baxın

  • flat metodu,
    altmassivlərdən massiv qaytaran