Ο Τελεστής spread στην JavaScript
Στο ES6 εμφανίστηκε ένας ειδικός τελεστής ...,
που ονομάζεται spread.
Όταν ο τελεστής spread βρίσκεται πριν από έναν πίνακα, χωρίζει αυτόν τον πίνακα σε μεμονωμένες τιμές, μετατρέποντας τον πίνακα σε ένα σύνολο παραμέτρων, απαραίτητων για την κλήση της συνάρτησης.
Σίγουρα ακούγεται ακατάληπτο, γι' αυτό ας
δούμε ένα απλό παράδειγμα. Ας υποθέσουμε ότι έχουμε
μια συνάρτηση που δέχεται 3 παραμέτρους
και επιστρέφει το άθροισμά τους:
function func(num1, num2, num3) {
return num1 + num2 + num3;
}
Ας υποθέσουμε επίσης ότι έχουμε έναν πίνακα τριών στοιχείων:
let arr = [1, 2, 3];
Προφανώς, δεν μπορούμε απλά να μεταβιβάσουμε αυτόν τον πίνακα ως παράμετρο της συνάρτησης, έτσι:
let arr = [1, 2, 3];
func(arr);
Διότι σε αυτήν την περίπτωση ολόκληρος ο πίνακας θα μπει στην πρώτη παράμετρο της συνάρτησης, ενώ σε αυτήν την παράμετρο πρέπει να μεταβιβάζεται αριθμός (και στις υπόλοιπες παραμέτρους επίσης).
Φυσικά, μπορούμε να προχωρήσουμε ως εξής:
let arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);
Αλλά υπάρχει και ένας πιο εύκολος τρόπος - να χρησιμοποιήσουμε τον τελεστή spread:
let arr = [1, 2, 3];
func(...arr);
Η ύπαρξη μεταβλητής δεν είναι υποχρεωτική - μπορούμε να εφαρμόσουμε το spread απευθείας στον πίνακα:
func(...[1, 2, 3]);
Δίνεται ένας πίνακας:
let arr = [1, 2, 3, 4, 5];
Δίνεται επίσης και μια συνάρτηση:
function func(num1, num2, num3, num4, num5) {
return num1 + num2 + num3 + num4 + num5;
}
Βρείτε με τη βοήθεια της παραπάνω συνάρτησης το άθροισμα των στοιχείων του πίνακα.