Ο Τελεστής spread στην JavaScript

Στο ES6 εμφανίστηκε ένας ειδικός τελεστής ..., που ονομάζεται spread.

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

Σίγουρα ακούγεται ακατάληπτο, γι' αυτό ας δούμε ένα απλό παράδειγμα. Ας υποθέσουμε ότι έχουμε μια συνάρτηση που δέχεται 3 παραμέτρους και επιστρέφει το άθροισμά τους:

javascriptfunction func(num1, num2, num3) {
  return num1 + num2 + num3;
}

Ας υποθέσουμε επίσης ότι έχουμε έναν πίνακα τριών στοιχείων:

javascriptlet arr = [1, 2, 3];

Προφανώς, δεν μπορούμε απλά να μεταβιβάσουμε αυτόν τον πίνακα ως παράμετρο της συνάρτησης, έτσι:

javascriptlet arr = [1, 2, 3];
func(arr);

Διότι σε αυτήν την περίπτωση ολόκληρος ο πίνακας θα μπει στην πρώτη παράμετρο της συνάρτησης, ενώ σε αυτήν την παράμετρο πρέπει να μεταβιβάζεται αριθμός (και στις υπόλοιπες παραμέτρους επίσης).

Φυσικά, μπορούμε να προχωρήσουμε ως εξής:

javascriptlet arr = [1, 2, 3];
func(arr[0], arr[1], arr[2]);

Αλλά υπάρχει και ένας πιο εύκολος τρόπος - να χρησιμοποιήσουμε τον τελεστή spread:

javascriptlet arr = [1, 2, 3];
func(...arr);

Η ύπαρξη μεταβλητής δεν είναι υποχρεωτική - μπορούμε να εφαρμόσουμε το spread απευθείας στον πίνακα:

javascriptfunc(...[1, 2, 3]);
Задание 1

Δίνεται ένας πίνακας:

javascriptlet arr = [1, 2, 3, 4, 5];

Δίνεται επίσης και μια συνάρτηση:

javascriptfunction func(num1, num2, num3, num4, num5) {
  return num1 + num2 + num3 + num4 + num5;
}

Βρείτε με τη βοήθεια της παραπάνω συνάρτησης το άθροισμα των στοιχείων του πίνακα.