Методот flatMap

Методот flatMap враќа нова низа, креирана откако на секој елемент од изворната низа се применува колбек, назначен во параметарот на методот. На прв поглед методот flatMap наликува на методот map, но неговата главна разлика е во тоа што секогаш враќа еднодимензионална низа.

Синтакса

javascriptlet newArray = array.flatMap(function);

Пример

Ајде да добиеме нова низа, користејќи го методот 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,
    кој враќа низа од поднизи