Spread i rest

Spread syntax

Spread syntax, to nowy zapis, który umożliwia rozbijanie iterowanej wartości na składowe. Może nią być string (bo składa się z poszczególnych liter), może to być tablica (bo składa się z elementów), mogą to być kolekcje (po których bardzo często robiliśmy pętle for) czy nawet obiekty (po których robiliśmy pętle for in), a nawet pojedyncze obiekty.

Poniżej kilka przykładów użycia tego zapisu:

//rozbijanie tablicy na poszczególne liczby
const tab = [1, 2, 3, 4];
console.log(...tab); //1, 2, 3, 4

//kopiowanie tablicy
const tab2 = [...tab];

//łączenie tablic
const tabPart = [3, 4]
const tabFull = [1, 2, ...tabPart, 5, 6]; //[1, 2, 3, 4, 5, 6]
//rozdzielanie tekstu na poszczególne litery
const str = "Ala ma kota";
const tab = [...str]; //["A", "l", "a", " ", "m", "a", " ", "k", "o", "t", "a"]
//Math.max wymaga parametrów po przecinku (nie jako tablica), więc mogę tutaj zastosować spread:

const tab = [1, 2, 3, 5, 4];
Math.max(...tab); //5

Spread mogę też wykorzystać do zamiany kolekcji elementów na tablicę, dzięki czemu mogę używać dla nich metod tablicowych:

W nowej wersji JavaScript spread możemy też zastosować dla obiektów:

Rest parameter

Identycznie jak spread syntax wygląda rest parameter, różnicą jest miejsce użycia - w tym przypadku jako parametr funkcji. Zapis ten umożliwia zbieranie w jedną zmienną (będącą tablicą) wielu parametrów przekazywanych do funkcji:

Rest operator możemy też wykorzystywać do pobierania w formie tablicy "pozostałych" wartości:

Pamiętaj, że rest musi występować jako ostatni w parametrach:

Last updated