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

javascriptlet newArray = array.flatMap(funktion);

Eksempel

Lad os få et nyt array, ved at bruge metoden flatMap:

javascriptlet arr = ['a', 'b', 'c'];

let res = arr.flatMap(function(elem) {
  return elem + '!';
});

console.log(res);

Resultatet af udførelsen af koden:

javascript['a!', 'b!', 'c!']

Eksempel

Lad os få et nyt array fra et kildearray bestående af tal:

javascriptlet arr = [1, 2, 3, 4, 5];

let res = arr.flatMap(function(elem) {
  return elem + 2;
});

console.log(res);

Resultatet af udførelsen af koden:

javascript[3, 4, 5, 6, 7]

Eksempel

Lad os prøve at anvende metoden flatMap på et array med det første nestede niveau:

javascriptlet 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:

javascript[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:

javascriptlet arr = ['a', 'b', ['c', 'd', ['e', 'f', ['g', 'h', ['i']]]]];

let res = arr.flatMap(Infinity);

console.log(res);

Resultatet af udførelsen af koden:

javascript[
  '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:

javascriptlet 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:

javascript'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