Διαδρομές
/
JavaScript
JavaScript
/
Ασκήσεις
/
Τα Επαναληπτικά Ξόρκια της Elyse
Τα Επαναληπτικά Ξόρκια της Elyse

Τα Επαναληπτικά Ξόρκια της Elyse

Άσκηση εκμάθησης

Εισαγωγή

Όταν δουλεύεις με πίνακες, μερικές φορές θέλεις να εκτελέσεις κώδικα για κάθε τιμή του πίνακα. Αυτό ονομάζεται επανάληψη ή βρόχος πάνω στον πίνακα.

Εδώ θα δούμε την περίπτωση όπου δε θέλεις να τροποποιήσεις τον πίνακα στη διαδικασία. Για να μετασχηματίσεις πίνακες, δες αντ' αυτού την έννοια των μετασχηματισμών πινάκων.

Ο βρόχος for

Ο πιο βασικός τρόπος για να κάνεις επανάληψη πάνω σε έναν πίνακα είναι να χρησιμοποιήσεις έναν βρόχο for, δες την έννοια των βρόχων for.

const numbers = [6.0221515, 10, 23];

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

Ο for...of βρόχος

Όταν θέλεις να δουλέψεις με την τιμή απευθείας σε κάθε επανάληψη και δε χρειάζεσαι καθόλου τη θέση, μπορείς να χρησιμοποιήσεις έναν for...of βρόχο.

Ο for...of λειτουργεί όπως ο βασικός βρόχος for που φαίνεται παραπάνω, αλλά αντί να πρέπει να ασχοληθείς με τη θέση ως μεταβλητή μέσα στον βρόχο, σου δίνεται απευθείας η τιμή.

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

Όπως ακριβώς στους κανονικούς βρόχους for, μπορείς να χρησιμοποιήσεις το continue για να σταματήσεις την τρέχουσα επανάληψη και το break για να σταματήσεις εντελώς την εκτέλεση του βρόχου.

Η μέθοδος forEach

Κάθε πίνακας περιλαμβάνει μια μέθοδο forEach που μπορεί να χρησιμοποιηθεί για να κάνεις επανάληψη πάνω στα στοιχεία του πίνακα.

Το forEach δέχεται ένα callback ως παράμετρο. Η συνάρτηση callback καλείται μία φορά για κάθε στοιχείο του πίνακα. Το τρέχον στοιχείο, η θέση του και ολόκληρος ο πίνακας περνιούνται στο callback ως ορίσματα. Συχνά χρησιμοποιείται μόνο το τρέχον στοιχείο ή η θέση.

const numbers = [6.0221515, 10, 23];

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

Δεν υπάρχει τρόπος να σταματήσεις την επανάληψη μόλις ξεκινήσει ο βρόχος forEach. Οι εντολές break και continue δεν υπάρχουν σε αυτό το πλαίσιο.

Οδηγίες

Ως επίδοξη μάγισσα, η Elyse χρειάζεται να αναλύει την τράπουλά της με πολλούς διαφορετικούς τρόπους. Για να κρατήσει τα πράγματα απλά, χρησιμοποιεί μόνο κάρτες με τιμές 1-10.

1. Προσδιόρισε πόσες κάρτες ενός συγκεκριμένου τύπου υπάρχουν στην τράπουλα

Η Elyse θέλει να μάθει πόσες κάρτες ενός συγκεκριμένου τύπου έχει στην τράπουλά της.

Γράψε μια συνάρτηση cardTypeCheck που παίρνει δύο παραμέτρους: έναν πίνακα με κάρτες (την τράπουλα της Elyse) και τον τύπο της κάρτας που θα μετρήσεις.

Note

Η συνάρτηση πρέπει να χρησιμοποιεί forEach και να επιστρέφει τον αριθμό των καρτών του συγκεκριμένου τύπου που υπάρχουν στην τράπουλα.

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

2. Προσδιόρισε πόσες μονές ή ζυγές κάρτες υπάρχουν

Για ένα άλλο κόλπο, η Elyse χρειάζεται να ξέρει πόσες μονές ή ζυγές κάρτες υπάρχουν στην τράπουλά της.

Υλοποίησε μια συνάρτηση determineOddEvenCards που παίρνει δύο παραμέτρους: έναν πίνακα με κάρτες (την τράπουλα της Elyse) και ένα Boolean (λογική τιμή), όπου το true αντιστοιχεί στις "ζυγές" και το false στις "μονές".

Αυτή η συνάρτηση πρέπει να επιστρέφει έναν μόνο αριθμό: τον αριθμό των μονών ή ζυγών καρτών που υπάρχουν στην τράπουλα (ανάλογα με την τιμή του δεύτερου ορίσματος).

Note

Για εξάσκηση, χρησιμοποίησε αυτή τη φορά έναν βρόχο for...of στην υλοποίηση της συνάρτησης.

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

determineOddEvenCards([1, 2, 3, 1, 5, 6], false);
// => 4
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
JavaScript Exercism

Έτοιμος να ξεκινήσεις την άσκηση Τα Επαναληπτικά Ξόρκια της Elyse;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις JavaScript με 37 έννοιες159 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.