Kurzusok
/
JavaScript
JavaScript
/
Feladatok
/
Elyse ciklusvarázslatai
Elyse ciklusvarázslatai

Elyse ciklusvarázslatai

Tanulófeladat

Bevezetés

Amikor tömbökkel dolgozol, előfordul, hogy minden egyes értékre le szeretnéd futtatni ugyanazt a kódot. Ezt hívjuk úgy, hogy iterálunk vagy ciklust futtatunk a tömbön.

Itt azt az esetet nézzük meg, amikor nem szeretnéd módosítani a tömböt menet közben. Ha a tömböket át szeretnéd alakítani, nézd meg helyette a tömbátalakítások fogalmát.

A for ciklus

A tömb iterálásának legegyszerűbb módja a for ciklus használata, lásd a ciklusok fogalmát.

const numbers = [6.0221515, 10, 23];

for (let i = 0; i < numbers.length; i++) {
  console.log(numbers[i]);
}
// => 6.0221515
// => 10
// => 23

A for...of ciklus

Amikor minden iterációban közvetlenül az értékkel szeretnél dolgozni, és egyáltalán nincs szükséged az indexre, használhatsz for...of ciklust.

A for...of ugyanúgy működik, mint a fentebb látott egyszerű for ciklus, csak itt nem kell a ciklusváltozóként az indexszel bajlódnod: helyette közvetlenül az értéket kapod meg.

const numbers = [6.0221515, 10, 23];

// Because re-assigning number inside the loop will be very
// confusing, disallowing that via const is preferable.
for (const number of numbers) {
  console.log(number);
}
// => 6.0221515
// => 10
// => 23

Ahogy a hagyományos for ciklusokban is, használhatod a continue utasítást az aktuális iteráció leállításához, a break utasítást pedig a ciklus teljes leállításához.

A forEach metódus

Minden tömb rendelkezik egy forEach metódussal, amellyel bejárhatod a tömb elemeit.

A forEach paraméterként egy callbacket fogad. A callback függvény minden egyes tömbelemre egyszer hívódik meg. Az aktuális elem, annak indexe és a teljes tömb argumentumként kerül átadásra a callbacknek. Gyakran csak az aktuális elemet vagy az indexet használjuk.

const numbers = [6.0221515, 10, 23];

numbers.forEach((number, index) => console.log(number, index));
// => 6.0221515 0
// => 10 1
// => 23 2

Miután a forEach ciklus elindult, nincs mód az iteráció leállítására. A break és a continue utasítás nem létezik ebben a kontextusban.

Utasítások

Feltörekvő bűvészként Elyse-nek sokféleképpen kell elemeznie a pakliját. Hogy egyszerű legyen a dolog, csak 1-10 értékű kártyákat használ.

1. Állapítsd meg, hány adott típusú kártya van a pakliban

Elyse szeretné tudni, hány adott típusú kártya van a paklijában.

Írj egy cardTypeCheck függvényt, amely két paramétert kap: egy kártyatömböt (Elyse pakliját) és a megszámolandó kártya típusát.

Note

A függvény használjon forEach-ot, és adja vissza a megadott típusú kártyák számát a pakliban.

const cardType = 3;
cardTypeCheck([1, 2, 3, 4], cardType);
// => 1

2. Állapítsd meg, hány páratlan vagy páros kártya van

Egy másik trükkhöz Elyse-nek tudnia kell, hány páratlan vagy páros kártya van a paklijában.

Készíts egy determineOddEvenCards függvényt, amely két paramétert kap: egy kártyatömböt (Elyse pakliját) és egy Boolean értéket (a true a „páros”, a false a „páratlan” megfelelője).

Ez a függvény egyetlen számot adjon vissza: a pakliban lévő páratlan vagy páros kártyák számát (attól függően, mit ér a második argumentum).

Note

Gyakorlásképpen ezúttal for...of ciklust használj a függvény megvalósításában.

determineOddEvenCards([1, 2, 3, 1, 5, 6], true);
// => 2

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

Készen állsz elkezdeni a(z) Elyse ciklusvará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.