flatMap metoden
Metoden flatMap returnerer
et nyt array, skabt efter at
hvert element i kildearrayet
er blevet sendt gennem en callback,
angivet i metodens parameter.
Ved første øjekast ligner metoden flatMap
metoden map, men dens vigtigste forskel
er, at den altid returnerer et endimensionalt array.
Syntaks
let newArray = array.flatMap(funktion);
Eksempel
Lad os få et nyt array,
ved at bruge metoden flatMap:
let arr = ['a', 'b', 'c'];
let res = arr.flatMap(function(elem) {
return elem + '!';
});
console.log(res);
Resultatet af udførelsen af koden:
['a!', 'b!', 'c!']
Eksempel
Lad os få et nyt array fra et kildearray bestående af tal:
let arr = [1, 2, 3, 4, 5];
let res = arr.flatMap(function(elem) {
return elem + 2;
});
console.log(res);
Resultatet af udførelsen af koden:
[3, 4, 5, 6, 7]
Eksempel
Lad os prøve at anvende metoden
flatMap på et array med det første
nestede niveau:
let arr = [1, 2, 3, [4, 5]];
let res = arr.flatMap(function getElem(elem){
return elem + 2;
});
console.log(res);
Efter udførelsen af koden vil vi se, at funktionens betingelser blev anvendt på subarrayet, idet den behandlede det som ét element. Derfor giver det ikke mening at kalde denne metode på nestede arrays på denne måde:
[3, 4, 5, '4,52']
Eksempel
Hvis vi ikke vil bekymre os om nestede niveauer,
men blot samle hele arrayet, så bruger vi parameteren Infinity:
let arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];
let res = arr.flatMap(Infinity);
console.log(res);
Resultatet af udførelsen af koden:
[
'a', 'b', 'c',
'd', 'e', 'f',
'g', 'h', 'i'
]
Eksempel
Lad os anvende to metoder på arrayet:
flatMap og map, hvor begge metoder
får en funktion angivet, der gør arrayet todimensionalt:
let arr = [1, 2, 3, 4, 5, 6];
let res1 = arr.map(elem => [elem * 3]);
let res2 = arr.flatMap(elem => [elem * 3]);
console.log('metoden map', res1);
console.log('metoden flatMap', res2);
Resultatet af udførelsen af koden:
'metoden map' [[3], [6], [9], [12], [15], [18]]
'metoden flatMap' [3, 6, 9, 12, 15, 18]
Se også
-
metoden
flat,
som returnerer et array fra subarrays