window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster już istnieje') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Trzy przydatne punkty - reszta i spread w JavaScript - The Codest
The Codest
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Branże
    • Fintech i bankowość
    • E-commerce
    • Adtech
    • Healthtech
    • Produkcja
    • Logistyka
    • Motoryzacja
    • IOT
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
Strzałka w tył WSTECZ
2019-11-25
Software Development

Trzy przydatne punkty - reszta i spread w JavaScript

Łukasz Kolko

ECMAScript 2015 przyniósł nam wiele nowości, które zaowocowały dużą liczbą usprawnień. Dziś przyjrzymy się bliżej dwóm funkcjom, które ułatwiają życie. Poznaj paremetry reszty i składnię spread.

Parametry odpoczynku

Składnia reszty pozwala nam reprezentować nieokreśloną liczbę argumentów jako tablicę. Spójrzmy na funkcję, która sumuje wszystkie przekazane argumenty.

const sum = (...args) => args.reduce((prev, current) => prev + current);

console.log(sum(1, 2)); // 3
console.log(sum(1, 2, 3)); // 6

Składnia spreadu

Operator spread pozwala nam rozszerzać obiekty iterowalne na pojedyncze elementy. Funkcjonalność ta jest przeciwieństwem tego, co osiągnęliśmy za pomocą pozostałych parametrów. Można go zastosować do wszystkich iterabli, takich jak tablice, obiekty, zbiory, mapy itp.

const sum = (x, y, z) => x + y + z;
const numbers = [1, 2, 3];

console.log(sum(...numbers)); // 6

Trzy kropki w rzeczywistych przypadkach użycia

Kopiowanie tablicy

Składnia spread efektywnie przechodzi o jeden poziom głębiej podczas kopiowania tablicy. Jeden poziom oznacza, że kopiowany jest pierwszy poziom referencji.

const array0 = [1, [2, 3]];
const array1 = [...array0];

console.log(array1); // [1, [2, 3]]

Tworzenie tablicy unikalnych elementów

Utwórz zestaw, który przechowuje tylko unikalne elementy i przekonwertuj go z powrotem na tablicę.

const array = [1, 1, 2, 3];
const uniqueElements = [...new Set(array)];

console.log(uniqueElements); // [1, 2, 3]

Łączenie tablic

const array0 = [1, 2];;
const array1 = [3, 4];
const concated = [...array0, ...array1];

console.log(concated); // [1, 2, 3, 4]

Krojenie tablicy

const [firstElement, ...newArray] = [1, 2, 3, 4];

console.log(firstElement); // 1
console.log(newArray); // [2, 3, 4]

Możemy również usunąć n pierwsze elementy z przecinkami.

const [, , , ...newArray] = [1, 2, 3, 4];

console.log(newArray); // [4]

Wstawianie tablicy na początku innej tablicy

const array0 = [4, 5, 6];
const array1 = [1, 2, 3];
const newArray = [...array1, ...array0];

console.log(newArray); // [ 1, 2, 3, 4, 5, 6 ]

Generowanie tablicy liczb od 0 do n

const array = [...Array(10)].map((_, i) => i);

console.log(array); // [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ]

Destrukcja obiektu

const { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };

console.log(x); // 1
console.log(y); // 2
console.log(z); // { a: 3, b: 4 }

Tworzenie kopii obiektu

let person = {
  name: 'John',
  wiek: 25,
  portfel: {
    suma: 500,
    waluta: 'USD'
  }
};
let personCopy = { ...person };

console.log(personCopy);
// {
// imię: "John",
// wiek: 25,
// portfel: {
// suma: 500,
// waluta: "USD
// }
// }

Należy zauważyć, że utworzona kopia obiektu jest nowym obiektem ze wszystkimi właściwościami oryginalnego obiektu, ale bez jego prototypowych informacji.

person.age = 20;

console.log(person.age); // 20
console.log(personCopy.age); // 25

Zauważ, że składnia rozprzestrzeniania tworzy "płytką" kopię obiektu, więc właściwość "wallet" zostanie skopiowana tylko jako odniesienie do oryginalnego podobiektu. Do głębokiego klonowania można użyć metody stringify/parse JSON lub metody "cloneDeep" dostarczanej przez Lodash, w zależności od złożoności obiektu. W niektórych przypadkach ta metoda może być również pomocna:

let personCopy = { ...person, wallet = { ...person.wallet}}; 

Warunkowe dodawanie właściwości do obiektów

Możemy warunkowo dodawać właściwości do nowego obiektu, który tworzymy, korzystając z operatora rozprzestrzeniania się wraz z oceną zwarcia.

const colors = {
  red: '#ff0000',
  zielony: '#00ff00',
  niebieski: '#0000ff'
};
const black = {
  czarny: '#000000'
};

let extraBlack = false;
let conditionalMerge = {
  ...colors,
  ...(extraBlack ? black : {})
};

console.log(conditionalMerge);
// {
// czerwony: '#ff0000'
// zielony: "#00ff00",
// niebieski: '#0000ff'
// }

extraBlack = true;
conditionalMerge = {
  ...colors,
  ...(extraBlack ? black : {})
};

console.log(conditionalMerge);
// {
// czerwony: '#ff0000'
// zielony: "#00ff00",
// niebieski: '#0000ff'
// czarny: "#000000
// }

Dzielenie ciągu znaków na znaki

Jest to podobne do wywołania metody split z pustym ciągiem jako parametrem.

const split = [...'qwerty'];
console.log(split); // [ 'q', 'w', 'e', 'r', 't', 'y' ]

Doradztwo w zakresie rozwoju produktów cyfrowych

Czytaj więcej:

3 typowe wyzwania związane z rozwojem oprogramowania dla startupów

Najlepsze rodzaje projektów dla Javy

Jak nie zabić projektu złymi praktykami kodowania?

Powiązane artykuły

Software Development

Tworzenie przyszłościowych aplikacji internetowych: spostrzeżenia zespołu ekspertów The Codest

Odkryj, w jaki sposób The Codest wyróżnia się w tworzeniu skalowalnych, interaktywnych aplikacji internetowych przy użyciu najnowocześniejszych technologii, zapewniając płynne doświadczenia użytkowników na wszystkich platformach. Dowiedz się, w jaki sposób nasza wiedza napędza transformację cyfrową i biznes...

THEECODEST
Software Development

10 najlepszych firm tworzących oprogramowanie na Łotwie

Dowiedz się więcej o najlepszych łotewskich firmach programistycznych i ich innowacyjnych rozwiązaniach w naszym najnowszym artykule. Odkryj, w jaki sposób ci liderzy technologiczni mogą pomóc w rozwoju Twojej firmy.

thecodest
Rozwiązania dla przedsiębiorstw i scaleupów

Podstawy tworzenia oprogramowania Java: Przewodnik po skutecznym outsourcingu

Zapoznaj się z tym niezbędnym przewodnikiem na temat skutecznego tworzenia oprogramowania Java outsourcing, aby zwiększyć wydajność, uzyskać dostęp do wiedzy specjalistycznej i osiągnąć sukces projektu z The Codest.

thecodest
Software Development

Kompletny przewodnik po outsourcingu w Polsce

Wzrost liczby outsourcing w Polsce jest napędzany przez postęp gospodarczy, edukacyjny i technologiczny, sprzyjający rozwojowi IT i przyjazny klimat dla biznesu.

TheCodest
Rozwiązania dla przedsiębiorstw i scaleupów

Kompletny przewodnik po narzędziach i technikach audytu IT

Audyty IT zapewniają bezpieczne, wydajne i zgodne z przepisami systemy. Dowiedz się więcej o ich znaczeniu, czytając cały artykuł.

The Codest
Jakub Jakubowicz CTO & Współzałożyciel

Subskrybuj naszą bazę wiedzy i bądź na bieżąco!

    O nas

    The Codest - Międzynarodowa firma programistyczna z centrami technologicznymi w Polsce.

    Wielka Brytania - siedziba główna

    • Office 303B, 182-184 High Street North E6 2JA
      Londyn, Anglia

    Polska - lokalne centra technologiczne

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polska

      The Codest

    • Strona główna
    • O nas
    • Nasze Usługi
    • Case Studies
    • Nasze Know How
    • Kariera
    • Słownik

      Nasze Usługi

    • Konsultacje IT
    • Software Development
    • Backend Development
    • Frontend Development
    • Zespoły IT
    • Backend Dev
    • Inżynierowie rozwiązań chmurowych
    • Inżynierowie danych
    • Inne
    • Inżynierowie QA

      Raporty

    • Fakty i mity na temat współpracy z zewnętrznym partnerem programistycznym
    • Z USA do Europy: Dlaczego amerykańskie startupy decydują się na relokację do Europy?
    • Porównanie centrów rozwoju Tech Offshore: Tech Offshore Europa (Polska), ASEAN (Filipiny), Eurazja (Turcja)
    • Jakie są największe wyzwania CTO i CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Warunki korzystania z witryny

    Copyright © 2025 by The Codest. Wszelkie prawa zastrzeżone.

    pl_PLPolish
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek pl_PLPolish