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 ομαδοποιεί.