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

Τα αποδομημένα ξόρκια της Elyse

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

Εισαγωγή

Αποδόμηση πίνακα

Το συντακτικό αποδόμησης πίνακα της JavaScript είναι ένας σύντομος τρόπος να εξάγεις τιμές από έναν πίνακα και να τις εκχωρήσεις σε ξεχωριστές μεταβλητές.

Σε αυτό το παράδειγμα, κάθε τιμή του πίνακα numberOfMoons εκχωρείται στον αντίστοιχο πλανήτη:

const numberOfMoons = [0, 2, 14];
const [venus, mars, neptune] = numberOfMoons;

neptune;
// => 14

Με λίγα λόγια:

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

Αποδόμηση αντικειμένου

Στη JavaScript υπάρχει επίσης συντακτικό αποδόμησης για να εξάγεις ιδιότητες από ένα αντικείμενο και να τις εκχωρήσεις σε ξεχωριστές μεταβλητές.

Σε αυτό το παράδειγμα, σύμβολα καιρού εξάγονται από το αντικείμενο weather:

const weather = {
  sun: '☀️',
  sun_behind_small_cloud: '🌤️',
  sun_behind_cloud: '⛅',
  sun_behind_large_cloud: '🌥️',
  sun_behind_rain_cloud: '🌦️',
  cloud: '☁️',
  cloud_with_rain: '🌧️',
  cloud_with_snow: '🌨️',
  cloud_with_lightning: '🌩️',
  cloud_with_lightning_and_rain: '⛈️',
};

const { sun, cloud, cloud_with_lightning: thunder } = weather;

sun;
// => '☀️'

cloud;
// => '☁️'

thunder;
// => '🌩️'

Με λίγα λόγια:

  • Το συντακτικό σου επιτρέπει και να εξάγεις ιδιότητες και να τις εξάγεις δίνοντάς τους νέο όνομα.
  • Το συντακτικό αποδόμησης είναι διαθέσιμο μέσα σε παραμέτρους συνάρτησης.

Οδηγίες

Η Elyse, μελλοντική μάγισσα, συνεχίζει την εκπαίδευσή της. Έχει μια τράπουλα και θέλει να κάνει κόλπα μαζί της.

Για να είναι πιο εύκολα τα πράγματα, συνήθως ξεκινάει μόνο με φύλλα με αριθμούς από το 2 έως το 10, αν και μερικά από τα κόλπα μπορεί να περιλαμβάνουν επιπλέον φύλλα (φιγούρες).

Note

Υπάρχουν πολλοί τρόποι να ανακατέψεις τα φύλλα, αλλά για να διατηρηθεί η ψευδαίσθηση της μαγείας, είναι απαραίτητο να μην χρησιμοποιείται καμία μεμονωμένη μέθοδος, π.χ. η Elyse δεν χρησιμοποιεί splice, slice, shift, unshift, push, at. Η πρόσβαση σε πίνακα με array[index] και σε αντικείμενο (με object[key] και object.key) επίσης δεν πρέπει να χρησιμοποιείται ποτέ.

Θέλεις να βοηθήσεις την Elyse να ανεβάσει το επίπεδο της μαγείας της;

Advanced

Κάθε συνάρτηση μπορεί να υλοποιηθεί χρησιμοποιώντας τις παραμέτρους και ένα σώμα συνάρτησης με μία μόνο return expression.

1. Πάρε το πρώτο φύλλο

Η Elyse θα καλέσει το πρώτο φύλλο της τράπουλας χωρίς να χρησιμοποιήσει το array[index], το .at(index) ή το .shift(). Είναι απλώς μαγικό.

const deck = [5, 9, 7, 1, 8];

getFirstCard(deck);
// => 5

2. Πάρε το δεύτερο φύλλο

Η Elyse κάνει ταχυδακτυλουργικά και καλεί το δεύτερο φύλλο της τράπουλας χωρίς να χρησιμοποιήσει το array[index] ή το .shift().

const deck = [3, 2, 10, 6, 7];

getSecondCard(deck);
// => 2

3. Αντάλλαξε δύο φύλλα

Η Elyse θα κάνει τα δύο φύλλα της τράπουλας να αλλάξουν θέση. Δεν χρειάζεται να καλέσει ούτε μία συνάρτηση.

const deck = [10, 7];

swapTwoCards(deck);
// => [7, 10]

4. Μετακίνησε τρία φύλλα κυκλικά

Για να κάνει λίγα ακόμη ταχυδακτυλουργικά, η Elyse παίρνει τρία φύλλα και μεταφέρει γρήγορα το πάνω φύλλο στο πίσω μέρος, κάνοντας το μεσαίο φύλλο πρώτο φύλλο και το παλιό κάτω φύλλο μεσαίο φύλλο. Δεν χρειάζεται να καλέσει ούτε μία συνάρτηση.

const deck = [2, 6, 10];

shiftThreeCardsAround(deck);
// => [6, 10, 2]

5. Διάλεξε τη στοίβα με το όνομα

Η Elyse θα χωρίσει την τράπουλα σε δύο στοίβες. Ζητάει μετά από τον θεατή να διαλέξει μία από τις δύο στοίβες, την οποία θα ονομάσουμε chosen. Η στοίβα disregarded δεν έχει πια σημασία, και η Elyse την κάνει να εξαφανιστεί. Δεν χρειάζεται να καλέσει ούτε μία συνάρτηση.

const deck = [5, 4, 7, 10];
const chosen = [5, 4];
const disregarded = [7, 10];

pickNamedPile({ chosen, disregarded });
// => [5, 4]

5. Αντάλλαξε τη στοίβα που διαλέχτηκε

Δυστυχώς ο θεατής συνεχίζει να διαλέγει τη "λάθος" στοίβα, αλλά με λίγη έξυπνη και γρήγορη μαγεία, η Elyse μετονομάζει τη στοίβα chosen σε disregarded και τη στοίβα disregarded σε στοίβα chosen. Δεν χρειάζεται να καλέσει ούτε μία συνάρτηση.

const deck = [5, 4, 7, 10];
const chosen = [5, 4];
const disregarded = [7, 10];

swapNamedPile({ chosen, disregarded });
// => { chosen: [7, 10], disregarded: [5, 4] }
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
JavaScript Exercism

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

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