Direct naar de hoofdinhoud
Module 3 · Les 4 van 412/32 in de cursus~10 min
Modulelessen (4/4)

Itereren over collecties

Het manipuleren van collecties betekent vrijwel altijd itereren: er doorheen lopen de elementen één voor één en voor elk iets doen. In deze les hebben wij kijk naar de basissyntaxis; in de module functionele arrays (kaart / filteren / verkleinen) leren we ze declaratiever te schrijven.

for…of voor arrays

Het is de lus die je bijna altijd wilt gebruiken om een array te herhalen: it extraheert de waarde bij elke stap.

JS
const colori = ['rosso', 'verde', 'blu'];

for (const c of colori) {
  console.log(c);
}
// 'rosso'
// 'verde'
// 'blu'

Als je ook de index nodig hebt, gebruik dan entries():

JS
for (const [i, c] of colori.entries()) {
  console.log(`${i}: ${c}`);
}
// '0: rosso', '1: verde', '2: blu'

for…in voor objecten – met de nodige voorzichtigheid

for…in herhaalt de sleutels (tekenreeksen) van een object:

JS
const utente = { nome: 'Anna', eta: 28 };
for (const k in utente) {
  console.log(`${k} = ${utente[k]}`);
}

Object.keys / values / entries

Dit zijn de robuuste manieren om een ​​object te herhalen. Ze retourneren arrays, enzovoort ze combineren heel goed met for…of:

JS
const utente = { nome: 'Anna', eta: 28 };

Object.keys(utente); // ['nome', 'eta']
Object.values(utente); // ['Anna', 28]
Object.entries(utente); // [['nome', 'Anna'], ['eta', 28]]

for (const [k, v] of Object.entries(utente)) {
  console.log(`${k} → ${v}`);
}

Klassiek for

De "ouderwetse" for bestaat nog steeds. Je zult het zelden gebruiken, maar het is nuttig wanneer u nauwkeurige controle over de index nodig heeft (elementen overslaan, itereren achteruit):

JS
for (let i = 0; i < colori.length; i++) {
  console.log(i, colori[i]);
}

// Backwards
for (let i = colori.length - 1; i >= 0; i--) {
  console.log(colori[i]);
}

Probeer het

Oefening#js.m3.l4.e1
Pogingen: 0Laden…

Gegeven 'getallen = [3, 5, 7]', bereken de som van alle elementen (15) door te itereren met for...of. De laatste uitdrukking moet resulteren in de som.

Editor laden…
Toon hint

voor (const n van getallen) { som = som + n; }

Oplossing beschikbaar na 3 pogingen

Oefening beoordelen

Oefening#js.m3.l4.e2
Pogingen: 0Laden…

Gegeven `prices = { mela: 0.4, pera: 0.55, banaan: 0.3 }`, retourneer het TOTAAL AANTAL vermeldingen in het object (3) met behulp van Object.keys.

Editor laden…
Toon hint

Object.keys(obj) retourneert een array; .length geeft aan hoeveel sleutels er zijn.

Oplossing beschikbaar na 3 pogingen