Το συντακτικό αποδόμησης πίνακα της 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, αν και μερικά από τα κόλπα μπορεί να περιλαμβάνουν επιπλέον φύλλα (φιγούρες).
Υπάρχουν πολλοί τρόποι να ανακατέψεις τα φύλλα, αλλά για να διατηρηθεί η ψευδαίσθηση της μαγείας, είναι απαραίτητο να μην χρησιμοποιείται καμία μεμονωμένη μέθοδος, π.χ. η Elyse δεν χρησιμοποιεί splice, slice, shift, unshift, push, at.
Η πρόσβαση σε πίνακα με array[index] και σε αντικείμενο (με object[key] και object.key) επίσης δεν πρέπει να χρησιμοποιείται ποτέ.
Θέλεις να βοηθήσεις την Elyse να ανεβάσει το επίπεδο της μαγείας της;
Κάθε συνάρτηση μπορεί να υλοποιηθεί χρησιμοποιώντας τις παραμέτρους και ένα σώμα συνάρτησης με μία μόνο return expression.
Η Elyse θα καλέσει το πρώτο φύλλο της τράπουλας χωρίς να χρησιμοποιήσει το array[index], το .at(index) ή το .shift().
Είναι απλώς μαγικό.
const deck = [5, 9, 7, 1, 8];
getFirstCard(deck);
// => 5
Η Elyse κάνει ταχυδακτυλουργικά και καλεί το δεύτερο φύλλο της τράπουλας χωρίς να χρησιμοποιήσει το array[index] ή το .shift().
const deck = [3, 2, 10, 6, 7];
getSecondCard(deck);
// => 2
Η Elyse θα κάνει τα δύο φύλλα της τράπουλας να αλλάξουν θέση. Δεν χρειάζεται να καλέσει ούτε μία συνάρτηση.
const deck = [10, 7];
swapTwoCards(deck);
// => [7, 10]
Για να κάνει λίγα ακόμη ταχυδακτυλουργικά, η Elyse παίρνει τρία φύλλα και μεταφέρει γρήγορα το πάνω φύλλο στο πίσω μέρος, κάνοντας το μεσαίο φύλλο πρώτο φύλλο και το παλιό κάτω φύλλο μεσαίο φύλλο. Δεν χρειάζεται να καλέσει ούτε μία συνάρτηση.
const deck = [2, 6, 10];
shiftThreeCardsAround(deck);
// => [6, 10, 2]
Η Elyse θα χωρίσει την τράπουλα σε δύο στοίβες.
Ζητάει μετά από τον θεατή να διαλέξει μία από τις δύο στοίβες, την οποία θα ονομάσουμε chosen.
Η στοίβα disregarded δεν έχει πια σημασία, και η Elyse την κάνει να εξαφανιστεί.
Δεν χρειάζεται να καλέσει ούτε μία συνάρτηση.
const deck = [5, 4, 7, 10];
const chosen = [5, 4];
const disregarded = [7, 10];
pickNamedPile({ chosen, disregarded });
// => [5, 4]
Δυστυχώς ο θεατής συνεχίζει να διαλέγει τη "λάθος" στοίβα, αλλά με λίγη έξυπνη και γρήγορη μαγεία, η 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] }
Γράψου στο Exercism για να μάθεις και να κατακτήσεις JavaScript με 37 έννοιες159 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.