Tracks
/
JavaScript
JavaScript
/
Übungen
/
Elyses analytische Verzauberungen
Elyses analytische Verzauberungen

Elyses analytische Verzauberungen

Lernübung

Einführung

Pfeilfunktionen

Neben Funktionsdeklarationen und Funktionsausdrücken hat JavaScript noch eine weitere, sehr kompakte Syntax, um eine Funktion zu definieren. Diese Funktionen heißen Pfeilfunktionen.

Hier ist ein Vergleich zwischen einer Funktionsdeklaration und einer Pfeilfunktion.

function addUpTwoNumbers(num1, num2) {
  return num1 + num2;
}
// function keyword removed and => added
const addUpTwoNumbers = (num1, num2) => {
  return num1 + num2;
};

Wenn der Funktionskörper nur eine return-Anweisung enthält, wie im Beispiel oben, kannst du die {} und das Schlüsselwort return weglassen. Gibt es nur einen Parameter, kannst du auch die runden Klammern () weglassen.

const addUpTwoNumbers = (num1, num2) => num1 + num2;
const square = num => num * num;

Pfeilfunktionen werden oft verwendet, um kurze Callback-Funktionen direkt im Funktionsaufruf zu definieren.

applyToSquare(number => number * number);

Array-Analyse

Arrays haben eingebaute Methoden, um den Inhalt des Arrays zu analysieren. Die meisten dieser Methoden nehmen eine Funktion als Argument, die wahr oder falsch zurückgibt. Eine solche Funktion heißt predicate.

Die eingebauten Methoden sind dafür gedacht, anstelle einer for-Schleife oder der eingebauten forEach-Methode verwendet zu werden:

Beispiel für eine Analyse mit einer for-Schleife:

const numbers = [1, 'two', 3, 'four'];
for (var i = 0; i < numbers.length; i++) {
  if (numbers[i] === 'two') {
    return i;
  }
}
// => 1

Beispiel für eine Analyse mit einer eingebauten Methode:

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

Einige weitere hilfreiche eingebaute Methoden, mit denen du ein Array analysieren kannst, sind unten aufgeführt. Eine vollständige Liste der Array-Methoden findest du bei MDN.

includes

Die Methode includes(value) bestimmt, ob ein Array einen bestimmten Wert enthält. Wenn der Wert enthalten ist, gibt sie true zurück, sonst false.

const numbers = [1, 'two', 3, 'four'];
numbers.includes(1);
// => true
numbers.includes('one');
// => false

every

Die Methode every(predicate) nimmt eine Funktion, die ein Prädikat ist. Sie prüft, ob alle Elemente im Array true zurückgeben, wenn sie an das Prädikat übergeben werden. Mit anderen Worten: Die Methode prüft, dass alle ihre Elemente den Test bestehen, der dem Funktionsaufruf übergeben wurde. Sie gibt true zurück, wenn jedes Element den Test des Prädikats besteht, sonst false.

const numbers = [1, 3, 5, 7, 9];
numbers.every((num) => num % 2 !== 0);
// => true

some

Die Methode some(predicate) ist dieselbe wie die Methode every, gibt aber true zurück, wenn mindestens ein Element im Array den Test des Prädikats besteht.

const numbers = [1, 3, 5, 7, 9];
numbers.some((num) => num % 2 !== 0);
// => true

find

Die Methode find(predicate) gibt den Wert des ersten Elements im Array zurück, das den predicate-Test besteht. Während some() true zurückgibt, wenn ein Element besteht, gibt find() den tatsächlichen Wert im Array zurück. Die Methode gibt undefined zurück, wenn keines der Elemente im Array den Test des Prädikats besteht.

const numbers = [1, 3, 5, 7, 9];
numbers.find((num) => num < 5);
// => 1

findIndex

Die Methode findIndex(predicate) ist dieselbe wie die Methode find(), gibt aber den (ersten) Index des Elements zurück, das den Test des Prädikats besteht, anstatt des value. Die Methode gibt -1 zurück, wenn keines der Elemente im Array den Test des Prädikats besteht.

const numbers = [1, 3, 5, 7, 9];
numbers.findIndex((num) => num > 7);
// => 4
numbers.findIndex((num) => num > 9);
// => -1

Anleitung

Elyse, eine angehende Zauberin, setzt ihre Ausbildung fort. Sie bekommt mehrere Kartenstapel, mit denen sie ihre Tricks vorführen muss. Damit alles etwas einfacher wird, verwendet sie nur die Karten 1 bis 10.

In dieser Übung verwendest du eingebaute Methoden, um den Inhalt eines Arrays zu analysieren.

1. Finde die Position einer Karte

Elyse möchte die Position (den Index) einer Karte im Stapel wissen.

const card = 2;
getCardPosition([9, 7, 3, 2], card);
// => 3

2. Stelle fest, ob eine Karte vorhanden ist

Elyse möchte feststellen, ob eine Karte im Stapel vorhanden ist, mit anderen Worten, ob der Stapel eine bestimmte number enthält.

const card = 3;
doesStackIncludeCard([2, 3, 4, 5], card);
// => true

3. Stelle fest, ob jede Karte gerade ist

Elyse möchte wissen, ob jede Karte gerade ist, mit anderen Worten, ob jede Zahl im Stapel eine gerade number ist.

isEachCardEven([2, 4, 6, 7]);
// => false

4. Prüfe, ob der Stapel eine Karte mit ungeradem Wert enthält

Elyse möchte wissen, ob es eine ungerade Zahl im Stapel gibt.

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

5. Hole die erste ungerade Karte aus dem Stapel

Elyse möchte den Wert der ersten Karte wissen, die ungerade ist.

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

6. Bestimme die Position der ersten Karte, die gerade ist

Elyse möchte die Position der ersten Karte wissen, die gerade ist.

getFirstEvenCardPosition([5, 2, 3, 1]);
// => 1
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
JavaScript Exercism

Bereit, mit Elyses analytische Verzauberungen zu starten?

Melde dich bei Exercism an, um JavaScript mit 37 Konzepte159 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.