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ă
javascriptlet newArray = array.flatMap(funcție);
Exemplu
Să obținem un nou array,
utilizând metoda flatMap:
javascriptlet arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Rezultatul executării codului:
javascript['a!', 'b!', 'c!']
Exemplu
Să obținem un nou array din cel sursă, format din numere:
javascriptlet arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Rezultatul executării codului:
javascript[3, 4, 5, 6, 7]
Exemplu
Să încercăm să aplicăm metoda
flatMap unui array cu primul
nivel de imbricare:
javascriptlet 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:
javascript[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:
javascriptlet arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Rezultatul executării codului:
javascript[
'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:
javascriptlet 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:
javascript'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