window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versjon: 2, } ;(function () { var w = vindu if (w.LeadBooster) { console.warn('LeadBooster finnes 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
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

Rest-syntaksen gjør at vi kan representere et ubestemt antall argumenter som en matrise. Ta en titt på en funksjon som summerer alle argumentene som er sendt 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

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
Programvareutvikling

Den ultimate guiden til outsourcing i Polen

Den kraftige økningen i outsourcing i Polen er drevet av økonomiske, utdanningsmessige og teknologiske fremskritt, noe som fremmer IT-vekst og et forretningsvennlig klima.

TheCodest
Løsninger for bedrifter og oppskalering

Den komplette guiden til verktøy og teknikker for IT-revisjon

IT-revisjoner sørger for sikre, effektive og kompatible systemer. Les hele artikkelen for å lære mer om viktigheten av dem.

The Codest
Jakub Jakubowicz CTO og medgrunnlegger

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 © 2025 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 ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek nb_NONorwegian