The Codest
  • Om oss
  • Tjenester
    • Programvareutvikling
      • Frontend-utvikling
      • Backend-utvikling
    • Staff Augmentation
      • Frontend-utviklere
      • Backend-utviklere
      • Dataingeniører
      • Ingeniører i skyen
      • QA-ingeniører
      • Annet
    • Det rådgivende
      • Revisjon og rådgivning
  • Industrier
    • Fintech og bankvirksomhet
    • E-commerce
    • Adtech
    • Helseteknologi
    • Produksjon
    • Logistikk
    • Bilindustrien
    • IOT
  • Verdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leveransesjef
  • Vårt team
  • Casestudier
  • Vet hvordan
    • Blogg
    • Møter
    • Webinarer
    • Ressurser
Karriere Ta kontakt med oss
  • Om oss
  • Tjenester
    • Programvareutvikling
      • Frontend-utvikling
      • Backend-utvikling
    • Staff Augmentation
      • Frontend-utviklere
      • Backend-utviklere
      • Dataingeniører
      • Ingeniører i skyen
      • QA-ingeniører
      • Annet
    • Det rådgivende
      • Revisjon og rådgivning
  • Verdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leveransesjef
  • Vårt team
  • Casestudier
  • Vet hvordan
    • Blogg
    • Møter
    • Webinarer
    • Ressurser
Karriere Ta kontakt med oss
Pil tilbake GÅ TILBAKE
2019-11-25
Programvareutvikling

Tre nyttige prikker - resten og spredningen i JavaScript

Lukasz Kolko

ECMAScript 2015 brakte oss mange nyheter, noe som resulterte i et stort antall forbedringer. I dag skal vi se nærmere på to funksjoner som gjør livet enklere. Møt restparameterne og spread-syntaksen.

Parametere for hvile

Restsyntaksen tillater oss for å representere et ubestemt antall argumenter som en matrise. Ta en titt på en funksjon som summerer alle argumentene som sendes inn.

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 lar oss utvide iterable objekter til individuelle elementer. Denne funksjonaliteten er motsatt av det vi oppnådde med rest-parametrene. Den kan brukes på alle iterable objekter, for eksempel matriser, objekter, sett, kart osv.

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

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

Tre prikker i reelle brukstilfeller

Kopiering av en matrise

Spread-syntaksen går effektivt ett nivå dypere når du kopierer en matrise. Ett nivå betyr at det første nivået av referanser kopieres.

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

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

Opprette en matrise med unike elementer

Opprett settet som bare lagrer unike elementer, og konverter det tilbake til en matrise.

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

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

Sammenkjede matriser

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

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

Slicing av en matrise

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]

Sette inn en matrise i begynnelsen av en annen matrise

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

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

Genererer en tallrekke fra 0 til n

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

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

Destrukturering av 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 }

Opprette en kopi av et objekt

la person = {
  navn: 'John',
  alder: 25
  lommebok: {
    sum: 500,
    valuta: 'USD'
  }
};
let personCopy = { ...person };

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

Merk at kopien av objektet som opprettes, er et nytt objekt med alle egenskapene til det opprinnelige objektet, men ingen av prototypinformasjonen.

person.alder = 20;

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

Legg merke til at spread-syntaksen skaper en "grunn" kopi av objektet, slik at "wallet"-egenskapen bare kopieres som en referanse til det opprinnelige underobjektet. For dyp kloning kan du bruke JSON stringify/parse-tilnærmingen eller "cloneDeep"-metoden som tilbys av Lodash, avhengig av objektets kompleksitet. I noen tilfeller kan denne metoden også være nyttig:

la personCopy = { ...person, lommebok = { ...person.lommebok}}; 

Betinget legge til egenskaper i objekter

Vi kan legge til betingede egenskaper i et nytt objekt som vi oppretter, ved å bruke spredningsoperatoren sammen med kortslutningsevaluering.

const colors = {
  red: '#ff0000',
  grønn: '#00ff00',
  blue: '#0000ff'
};
const black = {
  svart: '#000000'
};

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

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

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

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

Oppdeling av en streng i tegn

Dette tilsvarer å kalle split-metoden med en tom streng som parameter.

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

Rådgivning innen digital produktutvikling

Les mer om dette:

3 vanlige utfordringer ved utvikling av programvareprodukter for oppstartsbedrifter

Den beste typen prosjekter for Java

Hvordan unngår man å drepe et prosjekt med dårlig kodingspraksis?

Relaterte artikler

Illustrasjon av en helseapp for smarttelefoner med et hjerteikon og et stigende helsediagram, merket med The Codest-logoen, som representerer digital helse og HealthTech-løsninger.
Programvareutvikling

Programvare for helsevesenet: Typer, brukstilfeller

Verktøyene helseorganisasjoner bruker i dag, ligner ikke på papirjournaler fra flere tiår tilbake. Programvare for helsevesenet støtter nå helsesystemer, pasientbehandling og moderne helsetjenester på tvers av kliniske og...

THECODEST
Abstrakt illustrasjon av et synkende søylediagram med en stigende pil og en gullmynt som symboliserer kostnadseffektivitet eller besparelser. The Codest-logoen vises i øverste venstre hjørne med slagordet "In Code We Trust" på en lysegrå bakgrunn.
Programvareutvikling

Slik skalerer du utviklingsteamet ditt uten å miste produktkvalitet

Skalerer du utviklingsteamet ditt? Lær hvordan du kan vokse uten å ofre produktkvaliteten. Denne guiden tar for seg tegn på at det er på tide å skalere, teamstruktur, ansettelser, lederskap og verktøy - i tillegg til hvordan The Codest kan...

THECODEST
Programvareutvikling

Bygg fremtidssikre webapper: Innsikt fra The Codests ekspertteam

Oppdag hvordan The Codest utmerker seg når det gjelder å skape skalerbare, interaktive webapplikasjoner med banebrytende teknologi som gir sømløse brukeropplevelser på tvers av alle plattformer. Finn ut hvordan ekspertisen vår driver digital transformasjon og...

THECODEST
Programvareutvikling

Topp 10 Latvia-baserte programvareutviklingsselskaper

I vår nyeste artikkel kan du lese mer om Latvias beste programvareutviklingsselskaper og deres innovative løsninger. Oppdag hvordan disse teknologilederne kan bidra til å løfte virksomheten din.

thecodest
Løsninger for bedrifter og oppskalering

Grunnleggende om Java-programvareutvikling: En guide til vellykket outsourcing

Utforsk denne viktige veiledningen om vellykket outsourcing av Java-programvareutvikling for å øke effektiviteten, få tilgang til ekspertise og drive frem prosjektsuksess med The Codest.

thecodest

Abonner på vår kunnskapsbase og hold deg oppdatert på ekspertisen fra IT-sektoren.

    Om oss

    The Codest - Internasjonalt programvareutviklingsselskap med teknologisentre i Polen.

    Storbritannia - Hovedkvarter

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

    Polen - Lokale teknologisentre

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

      The Codest

    • Hjem
    • Om oss
    • Tjenester
    • Casestudier
    • Vet hvordan
    • Karriere
    • Ordbok

      Tjenester

    • Det rådgivende
    • Programvareutvikling
    • Backend-utvikling
    • Frontend-utvikling
    • Staff Augmentation
    • Backend-utviklere
    • Ingeniører i skyen
    • Dataingeniører
    • Annet
    • QA-ingeniører

      Ressurser

    • Fakta og myter om samarbeid med en ekstern programvareutviklingspartner
    • Fra USA til Europa: Hvorfor velger amerikanske oppstartsbedrifter å flytte til Europa?
    • Sammenligning av Tech Offshore Development Hubs: Tech Offshore Europa (Polen), ASEAN (Filippinene), Eurasia (Tyrkia)
    • Hva er de største utfordringene for CTO-er og CIO-er?
    • The Codest
    • The Codest
    • The Codest
    • Retningslinjer for personver
    • Vilkår for bruk av nettstedet

    Opphavsrett © 2026 av The Codest. Alle rettigheter forbeholdt.

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