window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = vindue if (w.LeadBooster) { console.warn('LeadBooster findes allerede') } 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 }) }, } } })() Tre nyttige prikker - resten og spredningen i JavaScript - The Codest
Codest
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Industrier
    • Fintech og bankvirksomhed
    • E-commerce
    • Adtech
    • Sundhedsteknologi
    • Produktion
    • Logistik
    • Biler
    • IOT
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
Pil tilbage GÅ TILBAGE
2019-11-25
Udvikling af software

Tre nyttige prikker - resten og spredningen i JavaScript

Lukasz Kolko

ECMAScript 2015 bragte os en masse nyheder, som resulterede i et stort antal forbedringer. I dag vil vi se nærmere på to funktioner, der gør livet lettere. Mød rest-parametrene og spread-syntaksen.

Parametre for hvile

Rest-syntaksen giver os mulighed for at repræsentere et ubestemt antal argumenter som et array. Se på en funktion, der lægger alle de overførte argumenter sammen.

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

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

Spredt syntaks

Spread-operatoren giver os mulighed for at udvide iterable objekter til individuelle elementer. Denne funktionalitet er modsat af, hvad vi opnåede med restparametrene. Den kan anvendes på alle iterable objekter, f.eks. arrays, objekter, sæt, maps osv.

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

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

Tre prikker i virkelige brugssituationer

Kopiering af en matrix

Spread-syntaksen går effektivt et niveau dybere, når man kopierer et array. Et niveau betyder, at det første niveau af referencer kopieres.

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

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

Oprettelse af et array med unikke elementer

Opret et sæt, som kun gemmer unikke elementer, og konverter det tilbage til et array.

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

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

Sammenkædning af arrays

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

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

Skæring af en matrix

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

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

Vi kan også fjerne n første elementer med komma.

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

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

Indsæt et array i begyndelsen af et andet array

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

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

Generering af en række tal fra 0 til n

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

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

Destruktion af et 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 }

Oprettelse af en kopi af et objekt

lad person = {
  navn: 'John',
  alder: 25,
  wallet: {
    sum: 500,
    valuta: 'USD'
  }
};
lad personCopy = { ...person };

console.log(personCopy);
// {
// navn: 'John',
// alder: 25,
// tegnebog: {
// sum: 500,
// valuta: 'USD'
// }
// }

Bemærk, at den kopi af objektet, der oprettes, er et nyt objekt med alle det oprindelige objekts egenskaber, men ingen af dets prototypiske oplysninger.

person.age = 20;

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

Bemærk, at spread-syntaksen skaber en "overfladisk" kopi af objektet, så "wallet"-egenskaben kopieres kun som en reference til det oprindelige underobjekt. Til dyb kloning kan du bruge JSON stringify/parse-tilgangen eller 'cloneDeep'-metoden fra Lodash afhængigt af dit objekts kompleksitet. I nogle tilfælde kan denne metode også være nyttig:

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

Betinget tilføjelse af egenskaber til objekter

Vi kan betinget tilføje egenskaber til et nyt objekt, som vi opretter, ved at bruge spread-operatoren sammen med kortslutningsevaluering.

const farver = {
  red: '#ff0000',
  grøn: '#00ff00',
  blue: '#0000ff'
};
const black = {
  sort: '#000000'
};

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

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

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

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

Opdeling af en streng i tegn

Det svarer til at kalde split-metoden med en tom streng som parameter.

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

Rådgivning om digital produktudvikling

Læs mere om det:

3 almindelige udfordringer ved softwareproduktudvikling for nystartede virksomheder

Den bedste type projekter til Java

Hvordan dræber man ikke et projekt med dårlig kodningspraksis?

Relaterede artikler

Udvikling af software

Byg fremtidssikrede webapps: Indsigt fra The Codest's ekspertteam

Oplev, hvordan The Codest udmærker sig ved at skabe skalerbare, interaktive webapplikationer med banebrydende teknologier, der leverer sømløse brugeroplevelser på tværs af alle platforme. Lær, hvordan vores ekspertise driver digital transformation og...

DENKODEST
Udvikling af software

Top 10 Letlands-baserede softwareudviklingsvirksomheder

Læs om Letlands bedste softwareudviklingsvirksomheder og deres innovative løsninger i vores seneste artikel. Find ud af, hvordan disse teknologiledere kan hjælpe med at løfte din virksomhed.

thecodest
Løsninger til virksomheder og scaleups

Grundlæggende om Java-softwareudvikling: En guide til succesfuld outsourcing

Udforsk denne vigtige guide til vellykket outsourcing af Java-softwareudvikling for at forbedre effektiviteten, få adgang til ekspertise og skabe projektsucces med The Codest.

thecodest
Udvikling af software

Den ultimative guide til outsourcing i Polen

Den voldsomme stigning i outsourcing i Polen er drevet af økonomiske, uddannelsesmæssige og teknologiske fremskridt, der fremmer it-vækst og et erhvervsvenligt klima.

TheCodest
Løsninger til virksomheder og scaleups

Den komplette guide til IT-revisionsværktøjer og -teknikker

IT-revisioner sikrer sikre, effektive og kompatible systemer. Lær mere om deres betydning ved at læse hele artiklen.

Codest
Jakub Jakubowicz CTO og medstifter

Tilmeld dig vores vidensbase, og hold dig opdateret om ekspertisen fra it-sektoren.

    Om os

    The Codest - International softwareudviklingsvirksomhed med tech-hubs i Polen.

    Storbritannien - Hovedkvarter

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

    Polen - Lokale teknologiske knudepunkter

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

      Codest

    • Hjem
    • Om os
    • Serviceydelser
    • Casestudier
    • Ved hvordan
    • Karriere
    • Ordbog

      Serviceydelser

    • Det rådgivende
    • Udvikling af software
    • Backend-udvikling
    • Frontend-udvikling
    • Staff Augmentation
    • Backend-udviklere
    • Cloud-ingeniører
    • Dataingeniører
    • Andet
    • QA-ingeniører

      Ressourcer

    • Fakta og myter om at samarbejde med en ekstern softwareudviklingspartner
    • Fra USA til Europa: Hvorfor beslutter amerikanske startups sig for at flytte til Europa?
    • Sammenligning af Tech Offshore-udviklingsknudepunkter: Tech Offshore Europa (Polen), ASEAN (Filippinerne), Eurasien (Tyrkiet)
    • Hvad er de største udfordringer for CTO'er og CIO'er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Vilkår for brug af hjemmesiden

    Copyright © 2025 af The Codest. Alle rettigheder forbeholdes.

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