Array-funksjonene .flat() og .flatMap(), som begge flater ut arrayer, bidro til drama i Javascript-miljøet tidligere i år.
.flat-funksjonen ble nemlig først foreslått som .flatten. Men da det utbredte biblioteket MooTools allerede hadde en .flatten-funksjon, ble det trøbbel da Firefox slapp Javascript-funksjonen med samme navn.
- Slutt med console.log!
Dermed var det duket for det som utviklet seg til Smooshgate, og som bidro til at funksjonen ble hetende .flat, sammen med søsterfunksjonen .flatMap.
Nå som støvet har lagt seg er det på tide å se nærmere på både .flat og .flatMap. Hva brukes de til, og bør du egentlig bruke dem?
kode24 har fått lov til å publisere videoer fra Kodesnutt-kanalen til Mikael Brevik – kjent fra blant annet podkasten og meetup-en BartJS. Og vi begynner med en video om nettopp .flat og .flatMap.
- flatMap er en utrolig nyttig og interessant konstruksjon! sier Mikael i videoen.
Se selv:
Og vil du bare ha en superkjapp påminner om hva .flat og .flatMap gjør, limer vi inn dette fra MDN:
/* Array.prototype.flatMap()
The flatMap() method first maps each element
using a mapping function, then flattens the result
into a new array. It is identical to a map followed
by a flat of depth 1, but flatMap is often quite
useful, as merging both into one method is slightly
more efficient. */
var new_array = arr.flatMap(function callback(currentValue[, index[, array]]) {
// return element for new_array
}[, thisArg])
/* Array.prototype.flatMap()
The flat() method creates a new array with all
sub-array elements concatenated into it recursively
up to the specified depth. */
var newArray = arr.flat([depth]);