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

Elyse varázslatai

Tanulófeladat

Bevezetés

A JavaScriptben a tömb egy listaszerű szerkezet, amelynek nincs rögzített hossza, és bármilyen primitív típust vagy objektumot tárolhat, akár vegyesen is.

Tömb létrehozásához írd az elemeket szögletes zárójelek ([]) közé. A tömb beolvasásához írd az indexet szögletes zárójelbe ([]) az azonosító után. A tömb indexei nullától kezdődnek.

Például:

const numbers = [1, 'two', 3, 'four'];
numbers[2];
// => 3

Ha meg akarod tudni, hány elem van egy tömbben, használd a length tulajdonságot:

const numbers = [1, 'two', 3, 'four'];
numbers.length;
// => 4

Ha meg akarsz változtatni egy elemet a tömbben, rendelj értéket az adott indexhez:

const numbers = [1, 'two', 3, 'four'];
numbers[0] = 'one';
numbers;
// => ['one', 'two', 3, 'four']

Metódusok

A minden Array objektumon elérhető metódusok közül néhány használható arra, hogy elemeket adj a tömbhöz, vagy eltávolíts belőle. Íme néhány, amit érdemes szem előtt tartanod, amikor ezen a feladaton dolgozol:

push

Egy value értéket a .push(value) metódussal adhatsz hozzá egy tömb végéhez. A metódus a tömb új hosszát adja vissza.

const numbers = [1, 'two', 3, 'four'];
numbers.push(5); // => 5
numbers;
// => [1, 'two', 3, 'four', 5]

pop

A legutolsó value értéket a .pop() metódussal távolíthatod el egy tömbből. A metódus az eltávolított értéket adja vissza. A tömb hossza e változás miatt csökkenni fog.

const numbers = [1, 'two', 3, 'four'];
numbers.pop(); // => four
numbers;
// => [1, 'two', 3]

shift

A legelső value értéket a .shift() metódussal távolíthatod el egy tömbből. A metódus az eltávolított értéket adja vissza. A tömb hossza e változás miatt csökkenni fog.

const numbers = [1, 'two', 3, 'four'];
numbers.shift(); // => 1
numbers;
// => ['two', 3, 'four']

unshift

Egy value értéket a .unshift(value) metódussal adhatsz hozzá egy tömb elejéhez. A metódus a tömb új hosszát adja vissza.

const numbers = [1, 'two', 3, 'four'];
numbers.unshift('one'); // => 5
numbers;
// => ['one', 1, 'two', 3, 'four']

splice

Egy adott index-en lévő value értéket a .splice(index, 1) metódussal távolíthatod el egy tömbből. A metódus az eltávolított elemet (elemeket) adja vissza.

const numbers = [1, 'two', 3, 'four'];
numbers.splice(2, 1, 'one'); // => [3]
numbers;
// => [1, 'two', 'one', 'four']
Advanced

Ezek a metódusok többre képesek, mint ahogy fentebb leírtuk:

  • A push és az unshift is lehetővé teszi, hogy egyszerre több értéket adj hozzá, ha több argumentumot adsz meg. Erre nincs szükség a feladat megoldásához.
  • A Splice több értéket is eltávolíthat, ha megnöveled a második argumentumot. Erre nincs szükség a feladat megoldásához.
  • A Splice több értéket is hozzáadhat, ha a deleteCount után argumentumként megadod őket. Ezzel értékeket cserélhetsz ki, vagy értékeket szúrhatsz be egy tömb közepére (például 0 elem eltávolításával). Erre nincs szükség a feladat megoldásához.

Utasítások

Leendő varázslóként Elyse-nek gyakorolnia kell néhány alapvető dolgot. Van egy pakli kártyája, amivel szeretne trükközni.

Hogy a dolgok kicsit könnyebbek legyenek, csak az 1-től 10-ig terjedő kártyákat használja, így a paklija számokból álló tömbként ábrázolható. Egy adott kártya pozíciója a tömbben lévő indexnek felel meg. Ez azt jelenti, hogy a 0. pozíció az első kártyára utal, az 1. pozíció a másodikra, és így tovább.

Note

Két függvény kivételével mindegyik frissítse a kártyák tömbjét, majd adja vissza a módosított tömböt. Ez egy gyakori munkamód, az úgynevezett Builder pattern, amivel a függvényeket szépen egymás után fűzheted.

A két kivétel a getItem, amely az adott pozíción lévő kártyát adja vissza, és a checkSizeOfStack, amely true-t ad vissza, ha a kapott méret megegyezik.

1. Kérj el egy kártyát a pakliból

Egy kártya kiválasztásához add vissza a kapott pakli position indexén lévő kártyát.

const position = 2;
getItem([1, 2, 4, 1], position);
// => 4

2. Cserélj ki egy kártyát a pakliban

Mutass be egy kis kézügyességet, és cseréld ki a position indexen lévő kártyát a megadott cserekártyára. Add vissza a módosított paklit.

const position = 2;
const replacementCard = 6;
setItem([1, 2, 4, 1], position, replacementCard);
// => [1, 2, 6, 1]

3. Szúrj be egy kártyát a pakli tetejére

Varázsolj elő egy kártyát úgy, hogy egy új kártyát szúrsz a pakli tetejére. Add vissza a módosított paklit.

const newCard = 8;
insertItemAtTop([5, 9, 7, 1], newCard);
// => [5, 9, 7, 1, 8]

4. Vegyél el egy kártyát a pakliból

Tüntess el egy kártyát úgy, hogy eltávolítod a pakliból az adott position pozíción lévő kártyát. Add vissza a módosított paklit.

const position = 2;
removeItem([3, 2, 6, 4, 8], position);
// => [3, 2, 4, 8]

5. Vedd le a pakli felső kártyáját

Tüntess el egy kártyát úgy, hogy eltávolítod a pakli tetején lévő kártyát. Add vissza a módosított paklit.

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

6. Szúrj be egy kártyát a pakli aljára

Varázsolj elő egy kártyát úgy, hogy egy új kártyát szúrsz a pakli aljára. Add vissza a módosított paklit.

const newCard = 8;
insertItemAtBottom([5, 9, 7, 1], newCard);
// => [8, 5, 9, 7, 1]

7. Vegyél el egy kártyát a pakli aljáról

Tüntess el egy kártyát úgy, hogy eltávolítod a pakli alján lévő kártyát. Add vissza a módosított paklit.

removeItemAtBottom([8, 5, 9, 7, 1]);
// => [5, 9, 7, 1]

8. Ellenőrizd a pakli méretét

Ellenőrizd, hogy a pakli mérete egyenlő-e a stackSize értékkel vagy sem.

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

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