Arrays met objecten#
Wat zijn objecten in arrays?
Tot nu toe hadden we arrays met losse waardes (strings, numbers). Maar je kunt ook complexere data opslaan met objecten.
Tot nu toe hadden we arrays met losse waardes (strings, numbers). Maar je kunt ook complexere data opslaan met objecten.
Simpele array (wat we al kennen):
let kleuren = ["rood", "blauw", "groen"];
Array met objecten (nieuwe manier):
let vragen = [
{
vraag: "Wat is de hoofdstad van Nederland?",
antwoord: "Amsterdam"
},
{
vraag: "Hoeveel poten heeft een spin?",
antwoord: "8"
}
];
Voordeel: Je kunt meerdere eigenschappen per item opslaan (vraag + antwoord, naam +
leeftijd,
etc.)
Uitlezen van objecten in array:
// Eerste vraag pakken
console.log(vragen[0]); //
Hele object
console.log(vragen[0].vraag); // "Wat is de hoofdstad van
Nederland?"
console.log(vragen[0].antwoord); // "Amsterdam"
// Tweede vraag pakken
console.log(vragen[1].vraag); // "Hoeveel poten heeft een spin?"
For...of loop (door array heen lopen)#
Wat is een for...of loop?
Met
Met
for...of kun je door een array heen lopen, item voor item. Dit is de makkelijkste
manier om
door een array te gaan.
Basis for...of loop:
let kleuren = ["rood", "blauw", "groen"];
for (let kleur of
kleuren) {
console.log(kleur);
}
Wat betekent dit?
for→ begin een looplet kleur→ maak een variabele voor elk itemof kleuren→ loop door de array "kleuren"console.log(kleur)→ print elk item
Output:
// In de console zie je:
rood
blauw
groen
Voordeel for...of: Super simpel! Je krijgt automatisch elk item zonder dat je met
indexen
hoeft te werken.
For...of met objecten#
Je kunt for...of gebruiken om door een array met objecten heen te lopen.
Voorbeeld met vragen:
let vragen = [
{ vraag: "2 + 2?", antwoord: "4"
},
{ vraag: "5 x 3?", antwoord: "15" },
{ vraag: "10 - 7?", antwoord: "3"
}
];
for (let item of
vragen) {
console.log("Vraag: " +
item.vraag);
console.log("Antwoord: " +
item.antwoord);
}
Output:
// In de console zie je:
Vraag: 2 + 2?
Antwoord: 4
Vraag: 5 x 3?
Antwoord: 15
Vraag: 10 - 7?
Antwoord: 3
Let op: Bij for...of krijg je niet automatisch een index (vraagteller). Als je die
nodig
hebt, moet je zelf een variabele maken.
Met teller (als je die nodig hebt):
let teller = 1;
for (let item of
vragen) {
console.log("Vraag " + teller
+
": " + item.vraag);
teller++;
}
Samenvatting#
Belangrijkste concepten deze week:
- Arrays kunnen objecten bevatten met meerdere eigenschappen
- For...of loop gebruiken om door arrays heen te lopen
Veelgemaakte fouten#
for let item in array→ moetfor let item of arrayzijn (gebruik of, niet in)- Object eigenschappen verkeerd schrijven →
item.vraagnietitem[vraag] - Proberen om
[i]te gebruiken in for...of → gebruik gewoon de variabele naam (bijv.item)
Debug tip:
Bij problemen met for...of:
- Zet
console.log(item)in de loop om te zien wat je items zijn - Check of je
ofgebruikt en nietin - Check of je objecteigenschappen correct schrijft met een
. - Test eerst met een kleine array (2-3 items)