Sobes.tech
Junior

Каква е разликата между операторите spread и rest?

sobes.tech AI

Отговор от AI

Операторът за разпръскване (...) разширява итерабелни обекти (масиви, низове) в отделни елементи и често се използва за създаване на копия на масиви, сливане на обекти или предаване на аргументи към функции. Операторът за остатък (...) събира останалите елементи в един масив, използва се при деструктуриране или при дефиниране на функции за събиране на аргументи.

Примери за използване на 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 събира.