A függvénydeklarációk és a függvénykifejezések mellett a JavaScriptnek van egy másik, nagyon tömör szintaxisa is függvények definiálására. Ezeket a függvényeket nyílfüggvényeknek nevezzük.
Íme egy összehasonlítás egy függvénydeklaráció és egy nyílfüggvény között.
function addUpTwoNumbers(num1, num2) {
return num1 + num2;
}
// function keyword removed and => added
const addUpTwoNumbers = (num1, num2) => {
return num1 + num2;
};
Ha a függvény törzse csak egy return utasítást tartalmaz, mint a fenti példában, akkor a {} és a return kulcsszó elhagyható.
Ha csak egy paraméter van, a zárójel (()) is elhagyható.
const addUpTwoNumbers = (num1, num2) => num1 + num2;
const square = num => num * num;
A nyílfüggvényeket gyakran arra használjuk, hogy rövid visszahívó függvényeket közvetlenül a függvényhívásban definiáljunk.
applyToSquare(number => number * number);
A tömböknek beépített metódusaik vannak a tartalmuk elemzésére.
Ezek a metódusok többsége olyan függvényt vár argumentumként, amely igaz vagy hamis értéket ad vissza.
Az ilyen függvényt predicate-nek nevezzük.
A beépített metódusokat a for ciklus vagy a beépített forEach metódus helyett érdemes használni:
Példa elemzésre for ciklussal:
const numbers = [1, 'two', 3, 'four'];
for (var i = 0; i < numbers.length; i++) {
if (numbers[i] === 'two') {
return i;
}
}
// => 1
Példa elemzésre beépített metódussal:
const numbers = [1, 'two', 3, 'four'];
numbers.indexOf('two');
// => 1
Az alábbiakban néhány további hasznos beépített metódust mutatunk be, amelyekkel tömböket elemezhetsz. A tömbmetódusok teljes listáját lásd az MDN oldalán.
includesAz includes(value) metódus megállapítja, hogy egy tömb tartalmaz-e egy adott értéket.
true-t ad vissza, ha az érték benne van, egyébként false-t.
const numbers = [1, 'two', 3, 'four'];
numbers.includes(1);
// => true
numbers.includes('one');
// => false
everyAz every(predicate) metódus olyan függvényt vár, amely predicate.
Azt vizsgálja, hogy a tömb minden eleme true-t ad-e vissza, amikor átadjuk a predicate-nek.
Más szóval: a metódus azt ellenőrzi, hogy minden eleme átmegy-e a függvényhívásnak átadott teszten.
true-t ad vissza, ha minden elem átmegy a predicate-teszten, egyébként false-t.
const numbers = [1, 3, 5, 7, 9];
numbers.every((num) => num % 2 !== 0);
// => true
someA some(predicate) metódus ugyanaz, mint az every metódus, de true-t ad vissza, ha a tömb legalább egy eleme átmegy a predicate-teszten.
const numbers = [1, 3, 5, 7, 9];
numbers.some((num) => num % 2 !== 0);
// => true
findA find(predicate) metódus a tömb első olyan elemének értékét adja vissza, amely átmegy a predicate-teszten.
Míg a some() true-t ad vissza, ha átmegy, addig a find() a tömb tényleges értékét adja vissza.
A metódus undefined-ot ad vissza, ha a tömb egyetlen eleme sem megy át a predicate-teszten.
const numbers = [1, 3, 5, 7, 9];
numbers.find((num) => num < 5);
// => 1
findIndexA findIndex(predicate) ugyanaz, mint a find() metódus, de a predicate-teszten átmenő elem (első) indexét adja vissza a value helyett.
A metódus -1-et ad vissza, ha a tömb egyetlen eleme sem megy át a predicate-teszten.
const numbers = [1, 3, 5, 7, 9];
numbers.findIndex((num) => num > 7);
// => 4
numbers.findIndex((num) => num > 9);
// => -1
Elyse, a leendő varázsló, folytatja a képzését. Több pakli kártyát kap, amelyekkel végre kell hajtania a trükkjeit. Hogy egy kicsit könnyebb legyen, csak az 1-től 10-ig terjedő kártyákat használja.
Ebben a feladatban beépített metódusokkal elemezd egy tömb tartalmát.
Elyse tudni szeretné egy kártya pozícióját (indexét) a pakliban.
const card = 2;
getCardPosition([9, 7, 3, 2], card);
// => 3
Elyse szeretné megállapítani, hogy egy kártya jelen van-e a pakliban, más szóval, hogy a pakli tartalmaz-e egy adott number-t.
const card = 3;
doesStackIncludeCard([2, 3, 4, 5], card);
// => true
Elyse tudni szeretné, hogy minden kártya páros-e, más szóval, hogy a pakli minden száma páros number-e.
isEachCardEven([2, 4, 6, 7]);
// => false
Elyse tudni szeretné, hogy van-e páratlan szám a pakliban.
doesStackIncludeOddCard([3, 2, 6, 4, 8]);
// => true
Elyse tudni szeretné, mennyi az első páratlan kártya értéke.
getFirstOddCard([4, 2, 8, 7, 9]);
// => 7
Elyse tudni szeretné az első páros kártya pozícióját.
getFirstEvenCardPosition([5, 2, 3, 1]);
// => 1
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) JavaScript nyelvet 37 fogalom159 feladat segítségével, valódi emberi mentorálással, mindez ingyen.