Sobes.tech
Junior

Ποια είναι η διαφορά μεταξύ των τελεστών spread και rest;

sobes.tech AI

Απάντηση από AI

Ο τελεστής spread (...) διαστέλλει επαναλαμβανόμενα αντικείμενα (πίνακες, συμβολοσειρές) σε μεμονωμένα στοιχεία και χρησιμοποιείται συχνά για τη δημιουργία αντιγράφων πινάκων, τη συγχώνευση αντικειμένων ή την παράδοση επιχειρημάτων σε συναρτήσεις. Ο τελεστής rest (...) συγκεντρώνει τα υπόλοιπα στοιχεία σε έναν πίνακα, που χρησιμοποιείται στην αποδόμηση ή στον ορισμό συναρτήσεων για τη συλλογή επιχειρημάτων.

Παραδείγματα χρήσης spread:

// Δημιουργία αντιγράφου πίνακα
const arr1 = [1, 2, 3];
const arr2 = [...arr1]; // arr2 = [1, 2, 3]

// Συγχώνευση πινάκων
const arr3 = [4, 5];
const combined = [...arr1, ...arr3]; // combined = [1, 2, 3, 4, 5]

// Μεταβίβαση επιχειρημάτων σε συνάρτηση
function sum(a, b, c) {
  return a + b + c;
}
const numbers = [1, 2, 3];
const result = sum(...numbers); // result = 6

Παραδείγματα χρήσης rest:

// Συλλογή των υπόλοιπων στοιχείων κατά την αποδόμηση πίνακα
const [first, ...restOfArray] = [1, 2, 3, 4]; // first = 1, restOfArray = [2, 3, 4]

// Συλλογή επιχειρημάτων σε συνάρτηση
function logArguments(arg1, ...restArgs) {
  console.log(arg1); // πρώτο επιχείρημα
  console.log(restArgs); // πίνακας των υπόλοιπων επιχειρημάτων
}
logArguments(1, 2, 3, 4); // Θα εμφανίσει 1 και [2, 3, 4]

Η βασική διαφορά βρίσκεται στον σκοπό τους: spread επεκτείνει, rest ομαδοποιεί.