Metoda flatMap
Metoda flatMap returnează
un nou array, creat după ce
la fiecare element al array-ului sursă
s-a aplicat o funcție callback,
specificată ca parametru al metodei.
La prima vedere, metoda flatMap
este similară cu metoda map, dar principala sa diferență
constă în faptul că întotdeauna returnează un array unidimensional.
Sintaxă
let newArray = array.flatMap(funcție);
Exemplu
Să obținem un nou array,
utilizând metoda flatMap:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Rezultatul executării codului:
['a!', 'b!', 'c!']
Exemplu
Să obținem un nou array din cel sursă, format din numere:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Rezultatul executării codului:
[3, 4, 5, 6, 7]
Exemplu
Să încercăm să aplicăm metoda
flatMap unui array cu primul
nivel de imbricare:
let arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
După executarea codului vom vedea că condițiile funcției s-au aplicat la subarray, considerându-l ca un singur element. De aceea, apelarea acestei metode pe array-uri imbricate nu are sens:
[3, 4, 5, '4,52']
Exemplu
Dacă nu vrem să ne complicăm cu nivelul de imbricare,
ci să îmbinăm întregul array, atunci folosim parametrul Infinity:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Rezultatul executării codului:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Exemplu
Să aplicăm la array două metode:
flatMap și map, iar în parametrul ambelor metode
va fi specificată o funcție care face array-ul bidimensional:
let arr = [1, 2, 3, 4, 5, 6];
let res1 = arr.map(elem => [elem * 3]);
let res2 = arr.flatMap(elem => [elem * 3]);
console.log('metoda map', res1);
console.log('metoda flatMap', res2);
Rezultatul executării codului:
'metoda map' [[3], [6], [9], [12], [15], [18]]
'metoda flatMap' [3, 6, 9, 12, 15, 18]
Vezi și
-
metoda
flat,
care returnează un array din subarray-uri