Kurzusok
/
JavaScript
JavaScript
/
Feladatok
/
Elyse elemző varázslatai
Elyse elemző varázslatai

Elyse elemző varázslatai

Tanulófeladat

Bevezetés

Nyílfüggvények

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);

Tömbök elemzése

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.

includes

Az 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

every

Az 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

some

A 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

find

A 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

findIndex

A 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

Utasítások

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.

1. Keresd meg egy kártya pozíciójá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

2. Állapítsd meg, hogy egy kártya jelen van-e

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

3. Állapítsd meg, hogy minden kártya páros-e

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

4. Ellenőrizd, hogy a pakli tartalmaz-e páratlan értékű kártyát

Elyse tudni szeretné, hogy van-e páratlan szám a pakliban.

doesStackIncludeOddCard([3, 2, 6, 4, 8]);
// => true

5. Keresd ki az első páratlan kártyát a pakliból

Elyse tudni szeretné, mennyi az első páratlan kártya értéke.

getFirstOddCard([4, 2, 8, 7, 9]);
// => 7

6. Állapítsd meg az első páros kártya pozícióját

Elyse tudni szeretné az első páros kártya pozícióját.

getFirstEvenCardPosition([5, 2, 3, 1]);
// => 1
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
JavaScript Exercism

Készen állsz elkezdeni a(z) Elyse elemző varázslatai feladatot?

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.