Методот flatMap
Методот flatMap враќа
нова низа, креирана откако
на секој елемент од изворната низа
се применува колбек,
назначен во параметарот на методот.
На прв поглед методот flatMap
наликува на методот map, но неговата главна разлика
е во тоа што секогаш враќа еднодимензионална низа.
Синтакса
let newArray = array.flatMap(function);
Пример
Ајде да добиеме нова низа,
користејќи го методот flatMap:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Резултат од извршувањето на кодот:
['a!', 'b!', 'c!']
Пример
Ајде да добиеме нова низа од изворната, составена од броеви:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Резултат од извршувањето на кодот:
[3, 4, 5, 6, 7]
Пример
Ајде да се обидеме да го примениме методот
flatMap на низа со прво
ниво на вгнезденост:
let arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
По извршувањето на кодот ќе видиме дека условите на функцијата се применија на поднизата, сметајќи ја за еден елемент. Затоа повикувањето на овој метод кај вгнездени низи нема смисла:
[3, 4, 5, '4,52']
Пример
Ако сакаме да не се мачиме со нивото на вгнезденост,
туку да ја соединиме целата низа, тогаш користиме параметар Infinity:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Резултат од извршувањето на кодот:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Пример
Ајде да примениме две методи на низата:
flatMap и map, при што во параметарот на двата методи
ќе биде назначена функција, која ја прави низата дводимензионална:
let 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);
Резултат од извршувањето на кодот:
'методот map' [[3], [6], [9], [12], [15], [18]]
'методот flatMap' [3, 6, 9, 12, 15, 18]
Погледни исто така
-
методот
flat,
кој враќа низа од поднизи