Over de spread-operator

Soms wil je van een array met getallen weten wat de hoogste en de laagste waarde is. Traditioneel wordt daarvoor dit soort Javascript code gebruikt:

const A = [ 2, 45, 87, 43, 0, 4, 13, 23, 7, 22 ]
let maximum = minimum = A[0];
for (let i=1; i<A.length; i++) {
  if (A[i] > maximum) maximum = A[i];
  if (A[i] < mimimum) minimum = A[i];
}

Deze aanpak is veilig en betrouwbaar, maar omslachtig.

De bibliotheek Math heeft functions max(a, b, c, …) en min(a, b, c, …), maar die hebben het nadeel dat je de hele array moet uitschrijven. Dat wordt lastig als de array heel lang is, of geen vaste lengte heeft.

De operator spread lost dit probleem op. Deze operator zet een array om in een reeks, gescheiden door komma's, die gebruikt kan worden als argumenten-lijst van een een function.

spread gebruik je door drie puntjes voor een array-naam te zetten. De code hierboven kan nu worden herschreven als:

const A = [ 2, 45, 87, 43, 0, 4, 13, 23, 7, 22 ];
let maximum = Math.max(...A);
let minimum = Math.min(...A);

Een andere mogelijkheid van spread is het samenvoegen van arrays :

const A = [ 2, 45, 87, 43 ], B = [ 0, 4, 13, 23, 7, 22 ];
let C = [...A, ...B]; // [ 2, 45, 87, 43, 0, 4, 13, 23, 7, 22 ]

Dit kun je ook gebruiken om een array te kopiëren:

const aa = ['a', 'b', 'c'];
let bb = [...aa]; // 'a', 'b', 'c'

Behalve voor het opsommen van arrays kan spread ook gebruikt worden voor het opsplitsen van een string in een reeks losse karakters en voor het omzetten van de inhoud van een object in een reeks strings in JSON-formaat.

De variabele waar de uitvoer van spread in wordt opgevagen moet wijzigbaar zijn. Dat betekent dat die variabele moet zijn gedeclareerd met let of var. De code:
const aa = ['a', 'b', 'c'];
const bb = [...aa]; // 'a', 'b', 'c'

veroorzaakt een foutmelding.

 
terug

html-743; Laatste wijziging: 28 mei 2024