JavaScriptTablice

Array.prototype.flatMap()

Mapuje każdy element i spłaszcza wynik o jeden poziom.

Zwraca
Nową tablicę z wynikami, spłaszczoną o jeden poziom.
Zmienia oryginał
Nie
Na tej stronie

Przykład

#
JavaScript
const courses = [
  { name: 'HTML', tags: ['web', 'podstawy'] },
  { name: 'Python', tags: ['dane', 'ai'] }
]

console.log(courses.flatMap((course) => course.tags))
Konsola
['web', 'podstawy', 'dane', 'ai']

Definicja i zastosowanie

#

Metoda flatMap() łączy map() i flat() w jednym kroku. Funkcja może zwrócić tablicę, a jej elementy zostaną wstawione bezpośrednio do wyniku.

Dzięki temu jeden element może zamienić się w kilka elementów albo w żaden (gdy funkcja zwróci pustą tablicę). To wygodny sposób, żeby jednocześnie przekształcać i filtrować dane.

Spłaszczanie działa tylko na jeden poziom. Jeśli funkcja zwraca tablice zagnieżdżone głębiej, reszta pozostanie zagnieżdżona.

Składnia

#
Składnia
array.flatMap(callbackFn)
array.flatMap(callbackFn, thisArg)

Parametry

#
  • callbackFn

    function (element, index, array)

    Funkcja zwracająca wartość albo tablicę wartości.
  • thisArg

    opcjonalny

    Wartość this wewnątrz funkcji.

Więcej przykładów

#
Mapowanie i filtrowanie naraz
JavaScript
const inputs = ['12', 'abc', '7', '']
const numbers = inputs.flatMap((value) => {
  const n = Number.parseInt(value, 10)
  return Number.isNaN(n) ? [] : [n]
})

console.log(numbers)
Konsola
[12, 7]

Obsługa przeglądarek

#

Szeroko dostępne

Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.

  • Chrome
  • Edge
  • Firefox
  • Safari

Dobre praktyki

#
  • Zwracanie [] z funkcji usuwa element z wyniku, a [a, b] zamienia jeden element w dwa.
  • Gdy nie potrzebujesz spłaszczania, zwykłe map() jest czytelniejsze.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.