Sobes.tech
Junior

Koja je razlika između spread i rest operatora?

sobes.tech АИ

Одговор од АИ

Operator raspršenja (...) proširuje iterabilne objekte (nizove, stringove) u pojedinačne elemente i često se koristi za kreiranje kopija nizova, spajanje objekata ili prenošenje argumenata funkcijama. Operator ostatka (...) skuplja preostale elemente u jedan niz, koristi se u destrukturiranju ili pri definisanju funkcija za skupljanje argumenata.

Primeri korišćenja spread:

// Kreiranje kopije niza
const arr1 = [1, 2, 3];
const arr2 = [...arr1]; // arr2 = [1, 2, 3]

// Spajanje nizova
const arr3 = [4, 5];
const combined = [...arr1, ...arr3]; // combined = [1, 2, 3, 4, 5]

// Prosleđivanje argumenata funkciji
function sum(a, b, c) {
  return a + b + c;
}
const numbers = [1, 2, 3];
const result = sum(...numbers); // result = 6

Primeri korišćenja rest:

// Skupljanje preostalih elemenata pri destrukturiranju niza
const [first, ...restOfArray] = [1, 2, 3, 4]; // first = 1, restOfArray = [2, 3, 4]

// Skupljanje argumenata u funkciji
function logArguments(arg1, ...restArgs) {
  console.log(arg1); // prvi argument
  console.log(restArgs); // niz preostalih argumenata
}
logArguments(1, 2, 3, 4); // Ispisaće 1 i [2, 3, 4]

Glavna razlika je u njihovoj nameni: spread proširuje, rest skuplja.