window.pipedriveLeadboosterConfig = { bas: 'leadbooster-chat.pipedrive.com', företagId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = fönster if (w.LeadBooster) { console.warn('LeadBooster finns redan') } annars { w.LeadBooster = { q: [], on: funktion (n, h) { this.q.push({ t: "o", n: n, h: h }) }, trigger: funktion (n) { this.q.push({ t: 't', n: n }) }, } } })() Tre användbara prickar - resten och spridningen i JavaScript - The Codest
Codest
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Industrier
    • Fintech & bankverksamhet
    • E-commerce
    • Adtech
    • Hälsoteknik
    • Tillverkning
    • Logistik
    • Fordon
    • IOT
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
Pil tillbaka GÅ TILLBAKA
2019-11-25
Utveckling av programvara

Tre användbara prickar - resten och spridningen i JavaScript

Lukasz Kolko

ECMAScript 2015 gav oss en hel del nyheter, vilket resulterade i ett stort antal förbättringar. Idag ska vi titta närmare på två funktioner som gör livet enklare. Möt restparemetrarna och spread-syntaxen.

Parametrar för vila

Med rest-syntaxen kan vi representera ett obegränsat antal argument som en array. Ta en titt på en funktion som summerar alla argument som skickas.

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

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

Spridd syntax

Med spread-operatorn kan vi expandera iterabla objekt till enskilda element. Denna funktionalitet är motsatt till vad vi uppnådde med restparametrarna. Den kan tillämpas på alla iterabla objekt, t.ex. arrayer, objekt, set, maps osv.

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

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

Tre prickar i verkliga användningsfall

Kopiera en matris

Spread-syntaxen går effektivt en nivå djupare när en array kopieras. En nivå innebär att den första nivån av referenser kopieras.

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

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

Skapa en array med unika element

Skapa Set som endast lagrar unika element och konvertera tillbaka det till en array.

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

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

Konkatenera matriser

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

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

Skära upp en matris

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

console.log(förstaElement); // 1
console.log(newArray); // [2, 3, 4]

Vi kan också ta bort n första elementen med kommatecken.

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

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

Infoga en array i början av en annan array

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

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

Generera en matris med siffror från 0 till n

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

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

Destruktion av ett objekt

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 }

Skapa en kopia av ett objekt

låt person = {
  namn: "John",
  ålder: 25,
  plånbok: {
    summa: 500,
    valuta: 'USD'
  }
};
låt personCopy = { ...person };

console.log(personCopy);
// {
// namn: 'John',
// ålder: 25,
// plånbok: {
// summa: 500,
// valuta: 'USD'
// }
// }

Observera att den kopia av objektet som skapas är ett nytt objekt med alla originalobjektets egenskaper men ingen av dess prototypinformation.

person.ålder = 20;

console.log(person.ålder); // 20
console.log(personCopy.ålder); // 25

Observera att spread syntax skapar en "ytlig" kopia av objektet, så egenskapen "wallet" kopieras endast som en referens till det ursprungliga underobjektet. För djup kloning kan du använda JSON stringify/parse-metoden eller "cloneDeep"-metoden som tillhandahålls av Lodash beroende på objektets komplexitet. I vissa fall kan den här metoden också vara till hjälp:

låt personCopy = {...person, plånbok = {...person.plånbok}}; 

Villkorligt tillägg av egenskaper till objekt

Vi kan villkorligt lägga till egenskaper i ett nytt objekt som vi skapar genom att använda spread-operatorn tillsammans med kortslutningsutvärdering.

const färger = {
  röd: '#ff0000',
  grön: '#00ff00',
  blue: '#0000ff'
};
const black = {
  svart: '#000000'
};

låt extraBlack = false;
låt conditionalMerge = {
  ...färger,
  ...(extraBlack ? svart : {})
};

console.log(conditionalMerge);
// {
// röd: '#ff0000',
// grön: '#00ff00',
// blue: '#0000ff'
// }

extraBlack = true;
conditionalMerge = {
  ...färger,
  ...(extraBlack ? svart : {})
};

console.log(conditionalMerge);
// {
// röd: '#ff0000',
// grön: '#00ff00',
// blue: '#0000ff'
// svart: '#000000'
// }

Dela upp en sträng i tecken

Detta är ungefär som att anropa split-metoden med en tom sträng som parameter.

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

Konsultation inom digital produktutveckling

Läs mer om detta:

3 Vanliga utmaningar för nystartade företag inom mjukvaruproduktutveckling

Den bästa typen av projekt för Java

Hur undviker man att döda ett projekt med dåliga kodningsrutiner?

Relaterade artiklar

Utveckling av programvara

Bygg framtidssäkrade webbappar: Insikter från The Codest:s expertteam

Upptäck hur The Codest utmärker sig genom att skapa skalbara, interaktiva webbapplikationer med banbrytande teknik som ger sömlösa användarupplevelser på alla plattformar. Läs om hur vår expertis driver digital omvandling och affärsutveckling...

DEKODEST
Utveckling av programvara

Topp 10 Lettlandsbaserade mjukvaruutvecklingsföretag

Läs mer om Lettlands främsta mjukvaruutvecklingsföretag och deras innovativa lösningar i vår senaste artikel. Upptäck hur dessa teknikledare kan hjälpa till att lyfta ditt företag.

thecodest
Lösningar för företag och uppskalningsföretag

Java Software Development Essentials: En guide till framgångsrik outsourcing

Utforska denna viktiga guide om framgångsrik outsourcing av Java-programvaruutveckling för att förbättra effektiviteten, få tillgång till expertis och driva projektframgång med The Codest.

thecodest
Utveckling av programvara

Den ultimata guiden till outsourcing i Polen

Den kraftiga ökningen av outsourcing i Polen drivs av ekonomiska, utbildningsmässiga och tekniska framsteg, vilket främjar IT-tillväxt och ett företagsvänligt klimat.

TheCodest
Lösningar för företag och uppskalningsföretag

Den kompletta guiden till verktyg och tekniker för IT-revision

IT-revisioner säkerställer säkra, effektiva och kompatibla system. Läs mer om hur viktiga de är genom att läsa hela artikeln.

Codest
Jakub Jakubowicz CTO och medgrundare

Prenumerera på vår kunskapsbas och håll dig uppdaterad om expertisen från IT-sektorn.

    Om oss

    The Codest - Internationellt mjukvaruutvecklingsföretag med teknikhubbar i Polen.

    Förenade kungariket - Huvudkontor

    • Kontor 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokala tekniknav

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

      Codest

    • Hem
    • Om oss
    • Tjänster
    • Fallstudier
    • Vet hur
    • Karriär
    • Ordbok

      Tjänster

    • Det rådgivande
    • Utveckling av programvara
    • Backend-utveckling
    • Frontend-utveckling
    • Staff Augmentation
    • Backend-utvecklare
    • Ingenjörer inom molntjänster
    • Dataingenjörer
    • Övriga
    • QA-ingenjörer

      Resurser

    • Fakta och myter om att samarbeta med en extern partner för mjukvaruutveckling
    • Från USA till Europa: Varför väljer amerikanska startup-företag att flytta till Europa?
    • Jämförelse av Tech Offshore Development Hubs: Tech Offshore Europa (Polen), ASEAN (Filippinerna), Eurasien (Turkiet)
    • Vilka är de största utmaningarna för CTO:er och CIO:er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Användarvillkor för webbplatsen

    Copyright © 2025 av The Codest. Alla rättigheter reserverade.

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