window.pipedriveLeadboosterConfig = { basis: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versie: 2, } ;(functie () { var w = venster als (w.LeadBooster) { console.warn('LeadBooster bestaat al') } anders { w.LeadBooster = { q: [], on: functie (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: functie (n) { this.q.push({ t: 't', n: n }) }, } } })() Drie nuttige punten - de rest en de spreiding in JavaScript - The Codest
The Codest
  • Over ons
  • Diensten
    • Software Ontwikkeling
      • Frontend ontwikkeling
      • Backend ontwikkeling
    • Staff Augmentation
      • Frontend ontwikkelaars
      • Backend ontwikkelaars
      • Gegevensingenieurs
      • Cloud Ingenieurs
      • QA ingenieurs
      • Andere
    • Het advies
      • Audit & Consulting
  • Industrie
    • Fintech & Bankieren
    • E-commerce
    • Adtech
    • Gezondheidstechnologie
    • Productie
    • Logistiek
    • Automotive
    • IOT
  • Waarde voor
    • CEO
    • CTO
    • Leveringsmanager
  • Ons team
  • Case Studies
  • Weten hoe
    • Blog
    • Ontmoetingen
    • Webinars
    • Bronnen
Carrière Neem contact op
  • Over ons
  • Diensten
    • Software Ontwikkeling
      • Frontend ontwikkeling
      • Backend ontwikkeling
    • Staff Augmentation
      • Frontend ontwikkelaars
      • Backend ontwikkelaars
      • Gegevensingenieurs
      • Cloud Ingenieurs
      • QA ingenieurs
      • Andere
    • Het advies
      • Audit & Consulting
  • Waarde voor
    • CEO
    • CTO
    • Leveringsmanager
  • Ons team
  • Case Studies
  • Weten hoe
    • Blog
    • Ontmoetingen
    • Webinars
    • Bronnen
Carrière Neem contact op
Pijl terug KEREN TERUG
2019-11-25
Software Ontwikkeling

Drie nuttige punten - de rest en de spreiding in JavaScript

Lukasz Kolko

ECMAScript 2015 bracht ons veel nieuws, wat resulteerde in een groot aantal verbeteringen. Vandaag nemen we twee functies onder de loep die het leven eenvoudiger maken. Maak kennis met de restparemeters en de spread syntax.

Rustparameters

Met de rest-syntax kunnen we een onbepaald aantal argumenten weergeven als een array. Kijk eens naar een functie die alle doorgegeven argumenten optelt.

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

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

Syntaxis spreiding

Met de spread operator kunnen we iterable objecten uitzetten in individuele elementen. Deze functionaliteit is tegengesteld aan wat we bereikten met de restparameters. Het kan worden toegepast op alle iterables, zoals arrays, objecten, sets, maps, enz.

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

console.log(som(...getallen)); // 6

Drie punten in echte gebruikssituaties

Een matrix kopiëren

De spread syntaxis gaat effectief één niveau dieper tijdens het kopiëren van een array. Eén niveau betekent dat het eerste niveau van referenties wordt gekopieerd.

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

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

Een array van unieke elementen maken

Maak een Set die alleen unieke elementen opslaat en converteer deze terug naar een array.

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

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

Matrixen samenvoegen

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

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

Een array snijden

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

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

We kunnen ook het volgende verwijderen n eerste elementen met komma.

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

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

Een matrix aan het begin van een andere matrix invoegen

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

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

Een reeks getallen van 0 tot en met n

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

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

Een object destructureren

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 }

Een kopie van een object maken

let person = {
  naam: 'John',
  leeftijd: 25,
  portemonnee: {
    som: 500,
    munteenheid: 'USD
  }
};
let personCopy = { ...person };

console.log(personCopy);
// {
// naam: 'John
// leeftijd: 25,
// portemonnee: {
// som: 500,
// munteenheid: 'USD
// }
// }

Merk op dat de kopie van het object dat wordt gemaakt een nieuw object is met alle eigenschappen van het oorspronkelijke object, maar zonder zijn prototype-informatie.

person.age = 20;

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

Merk op dat de gespreide syntaxis een 'ondiepe' kopie van het object maakt, dus de eigenschap 'wallet' wordt alleen gekopieerd als een verwijzing naar het oorspronkelijke subobject. Voor deep-cloning kun je JSON stringify/parse gebruiken of de methode 'cloneDeep' van Lodash, afhankelijk van de complexiteit van je object. In sommige gevallen kan deze methode ook nuttig zijn:

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

Voorwaardelijk eigenschappen toevoegen aan objecten

We kunnen voorwaardelijk eigenschappen toevoegen aan een nieuw object dat we maken door gebruik te maken van de spread operator in combinatie met kortsluitingsevaluatie.

const kleuren = {
  rood: '#ff0000',
  groen: '#00ff00',
  blauw: #0000ff
};
const black = {
  zwart: '#000000'
};

laat extraBlack = false;
laat conditionalMerge = {
  ...kleuren,
  ...(extraZwart ? zwart : {})
};

console.log(conditionalMerge);
// {
// rood: '#ff0000',
// groen: '#00ff00',
// blauw: #0000ff
// }

extraBlack = true;
conditionalMerge = {
  ...kleuren,
  ...(extraZwart ? zwart : {})
};

console.log(conditionalMerge);
// {
// rood: '#ff0000',
// groen: '#00ff00',
// blauw: #0000ff
// zwart: '#000000
// }

Een tekenreeks opsplitsen in tekens

Dit is vergelijkbaar met het aanroepen van de methode splitsen met een lege tekenreeks als parameter.

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

Advies over digitale productontwikkeling

Lees meer:

3 veelvoorkomende uitdagingen bij de ontwikkeling van softwareproducten voor starters

Het beste type projecten voor Java

Hoe help je een project niet om zeep met slechte codeerpraktijken?

Verwante artikelen

Software Ontwikkeling

Bouw Toekomstbestendige Web Apps: Inzichten van The Codest's Expert Team

Ontdek hoe The Codest uitblinkt in het creëren van schaalbare, interactieve webapplicaties met geavanceerde technologieën, het leveren van naadloze gebruikerservaringen op alle platforms. Ontdek hoe onze expertise digitale transformatie en business...

DE BESTE
Software Ontwikkeling

Top 10 in Letland gevestigde bedrijven voor softwareontwikkeling

Lees meer over de beste softwareontwikkelingsbedrijven van Letland en hun innovatieve oplossingen in ons nieuwste artikel. Ontdek hoe deze technologieleiders uw bedrijf kunnen helpen verbeteren.

thecodest
Oplossingen voor ondernemingen en schaalvergroting

Essentiële Java-softwareontwikkeling: Een gids voor succesvol uitbesteden

Verken deze essentiële gids over succesvolle outsourcing Java-softwareontwikkeling om de efficiëntie te verbeteren, toegang te krijgen tot expertise en projectsucces te stimuleren met The Codest.

thecodest
Software Ontwikkeling

De ultieme gids voor outsourcing in Polen

De sterke groei van outsourcing in Polen wordt gedreven door economische, educatieve en technologische vooruitgang, die IT-groei en een bedrijfsvriendelijk klimaat stimuleert.

DeCodest
Oplossingen voor ondernemingen en schaalvergroting

De complete gids voor IT-auditmiddelen en -technieken

IT-audits zorgen voor veilige, efficiënte en compliant systemen. Lees het volledige artikel om meer te weten te komen over het belang ervan.

The Codest
Jakub Jakubowicz CTO & medeoprichter

Abonneer je op onze kennisbank en blijf op de hoogte van de expertise uit de IT-sector.

    Over ons

    The Codest - Internationaal softwareontwikkelingsbedrijf met technische hubs in Polen.

    Verenigd Koninkrijk - Hoofdkantoor

    • Kantoor 303B, 182-184 High Street North E6 2JA
      Londen, Engeland

    Polen - Lokale technologieknooppunten

    • Fabryczna kantorenpark, Aleja
      Pokoju 18, 31-564 Krakau
    • Hersenambassade, Konstruktorska
      11, 02-673 Warschau, Polen

      The Codest

    • Home
    • Over ons
    • Diensten
    • Case Studies
    • Weten hoe
    • Carrière
    • Woordenboek

      Diensten

    • Het advies
    • Software Ontwikkeling
    • Backend ontwikkeling
    • Frontend ontwikkeling
    • Staff Augmentation
    • Backend ontwikkelaars
    • Cloud Ingenieurs
    • Gegevensingenieurs
    • Andere
    • QA ingenieurs

      Bronnen

    • Feiten en fabels over samenwerken met een externe partner voor softwareontwikkeling
    • Van de VS naar Europa: Waarom Amerikaanse startups besluiten naar Europa te verhuizen
    • Tech Offshore Ontwikkelingshubs Vergelijking: Tech Offshore Europa (Polen), ASEAN (Filippijnen), Eurazië (Turkije)
    • Wat zijn de grootste uitdagingen voor CTO's en CIO's?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Gebruiksvoorwaarden website

    Copyright © 2025 door The Codest. Alle rechten voorbehouden.

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