Array methods Flashcards
Wat is de output van de volgende regels:
const arr = new Array(7)
console.log(arr);
(7) [empty x 7]
Wat is de output van de volgende regels:
const arr = new Array(7)
arr.fill(1);
console.log(arr);
(7) [1,1,1,1,1,1,1]
Wat is de output van de volgende regels:
const arr = new Array(7)
arr.fill(1, 3);
console.log(arr);
(7) [empty x 3, 1, 1, 1, 1]
Wat is de output van de volgende regels:
const arr = new Array(7)
arr.fill(1, 3, 5);
console.log(arr);
(7) [empty x 3, 1, 1, empty x 2]
Geef aan hoe je een array van 7 cellen groot kan aanmaken en vullen met de getallen 1 tot 7 door gebruik te maken van de Array.from methode.
const arr = Array.from({ length: 7 }, (_, i) => i + 1);
Normaal is de eerste parameter van de callback functie de huidige waarde van de array. Omdat we deze waarde niet gebruiken noteren we dit met een underscore. Dergelijk variabele wordt een ‘throw away’ variabele genoemd.
- Hoe kunnen we elementen toevoegen aan het einde van een array?
- Hoe kunnen we elementen toevoegen aan het begin van een array?
- Hoe kunnen we elementen toevoegen op een bepaalde plaats in een array?
- Gaan de gebruikte methoden de array muteren of niet?
- Wat is de return waarde van de methoden?
- arr.push(5, 6);
- arr.unshift(1, 2);
- Volgende regel code gaat een element toevoegen op index 3 van de array:
arr.splice(3, 0, 4, 5); /splice(startIndex, elementsToDelete, ListOfElementsToAdd)
Merk op dat de tweede parameter van de methode aangeeft hoeveel elementen er verwijdert moeten worden. Dit wilt zeggen dat de splice methode ook gebruikt kan worden om elementen uit een array te verwijderen. Omdat we in dit voorbeeld enkel elementen toevoegen, is dit argument 0.
- Ja
- push en unshift geven de nieuwe lengte terug van de array (na toevoeging over verwijdering van element).
De splice methode zal een array teruggeven die de verwijderde elementen bevat. Dit wilt zeggen dat als de methode enkel gebruikt wordt om elementen aan een array toe te voegen, dat een lege array zal worden teruggegeven.
- Hoe kan je een element achteraan de array verwijderen?
- Hoe kan je een element vooraan een array verwijderen?
- Hoe kan je een element dat zich bevindt op een bepaalde positie uit een array verwijderen?
- Gaan de methoden de array muteren of niet?
- Wat is de return waarde van de methoden?
- arr.pop();
- arr.shift();
- Volgende regel code gaat vanaf index 2, 1 element verwijderen:
arr.splice(2, 1); // splice(startIndex, numberOfElementsToDelete) - Ja
- De pop en shift methoden zullen het verwijderede element teruggeven.
De splice methode zal een array teruggeven die de verwijderde elementen bevat. Dit wilt zeggen dat als de methode enkel gebruikt wordt om elementen aan een array toe te voegen, dat een lege array zal worden teruggegeven.
Hoe kunnen we een array ledigen?
arr.length = 0;
- Welke methoden kan je gebruiken om de index te verkrijgen van het eerste voorkomen of laatste voorkomen van een bepaalde primitieve waarde in een array?
- Wat is de returnwaarde indien het gezochte element niet gevonden wordt?
- geeft de index terug van het eerste voorkomen van het element in de array:
arr.indexOf(‘a’);
zal pas beginnen zoeken naar a vanaf index 2:
arr.indexOf(‘a’, 2);
zal pas beginnen zoeken naar 1 vanaf index 2:
numbers.indexOf(1, 2);
geeft de index terug van het laatste voorkomen van het element in de array:
arr.lastIndexOf(‘a’);
- Als het element niet gevonden wordt dan wordt -1 teruggegeven.
Hoe kan je nagaan of een primitive waarde zich in een array bevindt?
(tip: de returnwaarde moet true/false zijn)
arr.includes(‘a’);
Gegeven:
const courses = [
{ id: 1, name: “a” },
{ id: 2, name: “b” },
{ id: 3, name: “c” },
];
- Waarom levert de volgende regel false op:
courses.includes({ id: 1, name: “a” }); - Welke methode moeten we dan wel gebruiken om het object terug te vinden in de array?
- Wat is de returnwaarde van deze methode?
- Welke methode gebruik je indien je de index wilt verkrijgen van het gezochte object in de array? Wat geeft deze methode terug als het object niet gevonden wordt?
- Omdat het object dat we als argument meegeven wordt meegegeven by reference. Dit wilt zeggen dat niet het object zelf maar zijn adres wordt meegegeven. De methode include gaat daarom na of dat adres zich in de array bevindt. Omdat beide objecten (het object dat als argument dient en het object dat in de array staat) twee objecten zijn met een verschillend adres, zal includes false teruggegeven.
- Als we een referentie element willen terugvinden in een array, dan moeten we gebruik maken van de find methode. Deze methode neemt een callback functie mee als parameter.
De callback functie zelf kan ook een parameter meekrijgen die het referentie element voorsteld. We kunnen dan als volgt de array doorzoeken:
courses.find(function (course) {
return course.name === “a”;
});
- Als het object gevonden wordt dan zal find het gevonden object teruggeven, anders zal undefined teruggegeven worden.
- In dat geval gebruik je:
courses.findIndex(function (course) {
return course.name === “c”;
});
Als het object niet wordt teruggevonden dan wordt -1 teruggeven.
Gegeven:
const first = [1, 2, 3];
const second = [4, 5, 6];
Hoe kunnen we deze twee arrays samenvoegen?
Er zijn twee manieren om arrays samen te voegen:
- Met de concat methode:
const third = first.concat(second);
Merk op dat de concat methode een nieuwe array teruggeeft.
- Met de spread operator:
const third = […first, …second];
Hoe kunnen we een stuk uit een array kopieren?
// slice( startIndex, endIndex);
const newArr= arr.slice(2, 4);
Merk op dat
- Het kopie het element op het eindindex niet zal bevatten.
- Het niet verplicht is om een eind index mee te geven. Indien enkel een startindex wordt meegegeven zal slice bestaan uit het deel dat begint vanaf de startindex, tot het einde van de array.
- Het niet eens nodig is om argumenten mee te geven. In dit geval is het resultaat gewoonweg een kopie van de derde array.
Hoe kan je een functie toepassen op de elementen van de array waarbij de array ook daadwerklijk wordt gemuteerd?
Door gebruik te maken van de forEach methode:
arr.forEach((el, i, arr) => (arr[i] = el * 2));
- Is het mogelijk om de continue en break statements te gebruiken in de forEach methode?
- Kan de forEach methode ook gebruikt worden voor maps en sets?
- Wat is het verschil tussen de forEach methode en de map methode?
- Neen
- Ja
- De forEach methode zal de array muteren terwijl de map methode een nieuwe array zal teruggeven.