ES6 Methods
ES6, ami az ECMAScript 6 rövidítése, a JavaScript 2015 júniusában megjelent változata. Úgy tűnik, a JavaScriptet karbantartó fejlesztők kedvelik a születési hónapomat, mert a legtöbb verziójukat ekkor adták ki.
Ha még csak most tanulod a JavaScriptet, az ES6 sokkal könnyebbé teszi az életed. Nemcsak tömbmetódusokat biztosít, hanem többek között olyan dolgokat is, mint a destrukturálás, a nyílfüggvények, az objektumorientált és moduláris kód írásának jobb módja.
A legtöbb ilyen ES6 tömbmetódus egy visszahívási függvényt fogad el, és ennek eredményeképpen magasabb rendű tömbmetódusoknak nevezik őket. A nyílfüggvények nagyon gyakoriak a magasabb rendű függvényekben, mivel egyszerűsítik a kódunkat
A map metódus
Ha van olyan ES6 tömbmetódus, amelyet szinte mindig használni fogsz, akkor ez a metódus az. Ez a legjobb tömbmetódusom mind JavaScriptben, mind Pythonban. Bár néhány JavaScript-fejlesztő már az ES6 előtt megpróbálta implementálni a map
módszert, a szabványos map
metódust az ES6-ban vezették be a JavaScriptben. Az alábbi kódrészletben háromféleképpen valósítottam meg a map
-et:
- A szokásos JavaScript függvények használatával: Itt két argumentumot adtam át a függvénynek, először
item
, ami az az elem, amivel valamit csinálni akarok, és egy opcionális argumentumot,index
, ami az egyes elemek indexe - Nyílfüggvények használatával: Én is két argumentumot adtam át, akárcsak az első példában, de a visszahívó függvény itt is egy nyílfüggvény, ami sokkal rendezettebbé teszi a kódot.
- Én is használtam nyílfüggvényeket, de csak egy argumentumot adtam át – az elemet, amelyen iterálni akarok. Ez akkor hasznos, ha nincs szükségem az indexre.
A szűrő módszer
A filter
módszer egy másik magasabb rendű tömb módszer, amelyet ma már érdemes használni. Amit a filter
tesz, az egyszerű. Adott egy elemekből álló tömb, a kezdeti tömbből egy új tömböt akarunk visszaadni, ahol egy bizonyos feltétel true
. A visszahívó függvénynek egy boolean értéket kell visszaadnia, és a feltételnek engedelmeskedő elem lesz az, ami az új tömbben lesz.
A reduce módszer
Ez nagyon szép, és szerintem az eddig említett módszerek közül ez a legnehezebb. Amit ez a módszer csinál, az az, hogy egy bizonyos visszahívást használ a tömb csökkentésére. Ha például egy tömb összes elemének összegét vagy egy tömb összes elemének szorzatát akarom megtalálni, akkor ez a módszer egy szép módszer, ahelyett, hogy a kezdeti összeg vagy szorzat körbejárása és inkrementálása helyett ezt a módszert használnám.
A forEach módszer
Ez a módszer hasonló a map
módszerhez, de ebben az esetben nem ad vissza új tömböt. Ez inkább a szokásos for
ciklus a JavaScriptben, de tisztább és fejlettebb módon. Három paramétert vesz fel, ahogyan azt már tudhattad. Az első a tömbben lévő elem, a második az elem indexe (ami opcionális), a harmadik pedig az a tömbobjektum, amelyhez az aktuális elem tartozik.
A lenti kódrészletben a forEach
segítségével manipuláltam a Document Object Model-t (DOM), ami elég menő. Frissíthetem a tömböt, és a DOM-on megjelenített listaelemek automatikusan megváltoznak.
A concat módszer
Vannak olyan esetek, amikor két vagy több tömböt szeretnénk egyesíteni vagy egyesíteni. Ilyenkor ez a függvény nagyon hasznos lesz. A concat
hívása két tömbre egy új tömböt eredményez, amely a két tömb egyesítéséből áll.
A minden és néhány módszer
Ezek a módszerek akkor hasznosak, ha tudni akarjuk, hogy egy tömb minden eleme megfelel-e egy feltételnek, illetve ha egy tömb egyes elemei megfelelnek egy feltételnek.
A többi módszer a következő:
A fill módszer
A tömb minden elemét kitölti egy paraméterként átadott értékkel: .fill(1)
// .
A bejegyzések metódus
Ezzel a tömb úgy viselkedik, mint egy kulcs-érték párral rendelkező objektum, ahol a kulcs az index, az érték pedig az elem.
A keresés metódus
Ez a metódus a tömb első olyan elemét adja vissza, amely megfelel egy tesztnek. Egy callback függvényt vesz fel, amely egy boolean értéket ad vissza.
A splice módszer
Ez a módszer végtelen számú paramétert vesz fel – az első kettő az index, ahol az elemek beszúrását és eltávolítását el akarjuk kezdeni, illetve az eltávolítandó elemek száma -, a többi paraméter pedig a tömbhöz hozzáadni kívánt elemek. Visszaadja az eltávolított elemek tömbjét, és mutálja a tömböt.
A fordított módszer
A fordított módszer megfordítja a tömböt. Megjegyezzük, hogy mutálja, azaz megváltoztatja a tömböt, ahelyett, hogy csak egy másolatot hozna létre belőle.
A join-módszer
Ez a módszer egy tömböt egy tömbből egy karakterláncba fordít. Vegyük észre, hogy nem mutálja a tömböt – csak egy másolatot készít belőle. Ennek a metódusnak a fordítottja a split
metódus, amely egy karakterláncot alakít tömbtá. Paraméterként egy sztringet fogad el, amely a tömb minden egyes elemének összekapcsolására szolgál.
A flat módszer
A flat
módszer egy új módszer, amely az ES11-ben jelent meg (az ES11 idén júniusban jött létre). Ez a módszer egy tömböt laposít.
Tegyük fel, hogy van egy tömbünk, amely tartalmaz egy tömböt, és meg akarjuk találni a tömbön belüli tömbök minden elemének összegét és szorzatát. Ez alatt azt értem, hogy ha van egy tömböm, amelyet a , ]
határoz meg, akkor az összegnek 10
-nek, a szorzatnak pedig 24
-nak kell lennie.
Egyik módja ennek az, hogy végighaladunk a kezdeti tömbön, és minden elemen végighaladva megkapjuk az összeget és a szorzatot.
Az ES6 segítségével végighaladhatok a kezdeti tömbön, és a reduce
módszerrel megkapom a főtömb minden elemének összegét és szorzatát – ennek segítségével megkapjuk a teljes összeget és szorzatot. De a flat
tömb esetében a főtömböt le is lapozhatom, így egyetlen, csak számokat tartalmazó tömböt kapok vissza, és ezen használhatom a reduce
metódust.
A flatMap metódus
Ez a flat
és a map
kombinációja. A tömb minden egyes elemét leképezi egy adott visszahívási függvényre, majd az így kapott tömböt ellaposítja.
Tegyük fel, hogy egy nem lapított tömb minden egyes elemének a négyzetét szeretnénk megkapni, és ezt szeretnénk ellapítani. Ez a módszer megkönnyíti az életünket. Abban a részben, ahol az alábbi kódrészletben a flatMap
metódust használtam, az egy elemet vesz, ami egy tömb, és egy új tömböt adtam vissza, ami az elemek négyzete. Végül pedig a kapott tömböt ellaposítja.