JavaScript tömb szűrés, egyéb hasznos függvények

JavaScript Web

Modern iteráció, tömb bejárás

A for (let i = 0; i < tomb.length; i++) helyett használható modern, olvashatóbb iterációs metódusok

MetódusLeírásPélda
forEach()Végrehajt egy függvényt a tömb minden elemén. Nincs visszatérési értéke.tomb.forEach(elem => console.log(elem));
for...ofA legegyszerűbb módszer az elemek bejárására.for (const elem of tomb) { ... }
for...inFIGYELEM! A tömb indexeit adja vissza. Objektumokhoz ajánlott.for (const index in tomb) { ... }

Nem-módosító (Non-Mutating) Funkcionális Metódusok

Ezek a metódusok új tömböt adnak vissza, az eredeti tömböt érintetlenül hagyva. Ez a funkcionális programozás elvének felel meg, ami tisztább és hibamentesebb kódot eredményez.

map() – transzformáció

A map() metódus minden elemre végrehajt egy művletet. Az eredményből új tömböt hoz létre

filter() – szűrés

A filter() metódus segítségével egy új tömböt hozhatunk létre azokkal az elemekkel, amelyek megfelelnek a megadott feltételnek. Ez egy tisztán funkcionális módszer.

reduce() – akkumulálás

Végrehajt egy redukáló függvényt a tömb minden elemén, és egyetlen összegzett értéket (pl. összeg, átlag) ad vissza.

Keresés és tesztelés

find()

A find() metódus az első olyan elemet adja vissza, amely megfelel a feltételnek. Ha nincs ilyen, akkor undefined az eredmény.

findIndex()

A findIndex() metódus visszaadja annak az első elemnek az indexét, amely megfelel a feltételnek. Ha nincs találat, -1-et ad vissza.

includes()

Ellenőrzi, hogy a tömb tartalmazza-e a megadott értéket. true/false a visszatérési érték.

some() és every()

A some() metódus igaz értéket ad vissza, ha a tömb legalább egy eleme megfelel a feltételnek.
Az every() metódus akkor ad vissza igaz értéket, ha a tömb összes eleme megfelel a feltételnek.

includes() + filter()

az includes() önmagában nem szűr, de gyakran használjuk más metódusokkal, például a filter()-rel együtt. Segítségével meghatározzuk, a tömb tartalmaz-e bizonyos értékeket vagy nem.

map() + filter()

a map() elsősorban az elemek átalakítására szolgál, de kombinálva a filter()-rel komplex szűrési feltételek létrehozására is használható. pl: számoljuk ki az eredetiTomb értékeinek kétszeresét, majd gyűjtsük ki az ötnél nagyobb számokat!

példa map() és filter() használatára

Módosító metódusok

Ezekről már volt szó: push, pop, shift, unshift. Rajtuk kívül még ide tartozik:

slice(), splice()

slice() egy tömb egy részét kivágjuk bizonyos indexek alapján. Az eredeti tömböt nem módosítja.
splice() A legerősebb módosító metódus: hozzáad, töröl vagy kicserél elemeket a tömb bármely pontján.

flatMap()

A flatMap() metódus kombinálja a map() és a flat() műveleteket, és használható összetett szűrési és átalakítási feladatokra. Először végrehajt egy leképező (map) függvényt a tömb minden elemén. Ezután lapítja (flat) az eredményt, de csak egy szint mélységig.

Tegyük fel, hogy van egy szövegünk, és szeretnénk egyetlen ‘lapos’ tömböt kapni az összes szóból:

forEach(), for() és manuális szűrés

A forEach() és for() metódussal manuálisan is létrehozhatunk egy új tömböt, ahol minden elemet egy feltétel alapján vizsgálunk meg, és csak a megfelelő elemeket adjuk hozzá.
A for() hosszadalmasabb, szükséges a számláló (i) manuális kezelése és a tömb hosszának ellenőrzése. Teljes vezérlést biztosít. Lehetővé teszi a ciklus megszakítását (break) vagy egy iteráció kihagyását (continue) feltétel alapján. Gyors.

A forEach() egy beépített tömbmetódus, amely egy callback függvényt hajt végre a tömb minden elemén. Nem szakítható meg (nincs break vagy continue). A teljes tömbön végigfut.