Extra oefeningen
Oefening: Unieke waarden
Je begint met de volgende code:
let food : string[] = ["icecream", "cheese","icecream","apple","pear","chocolate","milk"];Gebruik
filterom uit deze array de dubbele waarden uit te halen.Gebruik
reduceom uit deze array de dubbele waarden uit te halen.Gebruik in plaats van
filterdereducefunctie om alle food elementen met lengte 4 te filteren.Gebruik
reduceom het aantal keer een bepaalde waarde voorkomt in de array te tellen. De output moet er zo uit zien:
{ icecream: 2, cheese: 1, apple: 1, pear: 1, chocolate: 1, milk: 1 }Maak gebruik van de reduce functie (of meerdere) om de alle gebruikte letters uit de food array te tonen op het scherm. Wat voorbeelden:
// let food : string[] = ["icecream", "cheese","icecream","apple","pear","chocolate","milk"];
acehiklmoprst
//let food : string[] = ["pas","sap"];
aps
//let food : string[] = ["pas","sap","bar","rap","paas"];
abprsOefening: Muziekanalyse
In deze oefening ga je werken met een dataset van liedjes. Je gaat verschillende bewerkingen uitvoeren om inzicht te krijgen in de gegevens van deze dataset. Gebruik de gegeven Song interface en songs array om de volgende taken uit te voeren:
export interface Song {
id: number;
name: string;
album: string;
duration: number;
artist: string;
genre: string;
image: string;
}Je kan het volgende json bestand gebruiken voor voorbeeld data:
Voor sommige opdrachten heb je extra interfaces nodig. Hier zijn de interfaces die je nodig hebt:
interface SongByGenre {
genre: string;
songs: string[];
}
interface SongsPerArtist {
[key: string]: number;
}Korte liedjes: Filter de liedjes met een duur van 200 seconden of korter en log ze in de console. Gebruik hiervoor de
filterfunctie.Unieke genres: Geef een lijst van unieke genres in de dataset en log ze in de console. Maak gebruik van de
mapenfilterfuncties om dit te bereiken.Unieke albums: Geef een lijst van unieke albums in de dataset en log ze in de console. Pas de
mapenfilterfuncties toe om dit doel te bereiken.Unieke artiesten: Geef een lijst van unieke artiesten in de dataset en log ze in de console. Gebruik de
mapenfilterfuncties om dit resultaat te verkrijgen.Totale duur: Bereken de totale duur van alle liedjes in de dataset en log het resultaat in de console. De
reducefunctie kan je hierbij helpen.Liedjes per genre: Groepeer de liedjes per genre en log het resultaat in de console. Om dit te doen, kun je de
mapenfilterfuncties toepassen.Liedjes per genre (met reduce): Gebruik de
reducefunctie om de liedjes per genre te groeperen en log het resultaat in de console. Begin met een geschikt startobject in dereducefunctie. Maak gebruik van deSongByGenreinterface.Aantal liedjes per artiest: Bereken het aantal liedjes per artiest en log het resultaat in de console. Maak hiervoor gebruik van de
reducefunctie en deSongsPerArtistinterface.Gemiddelde liedjeslengte: Bereken de gemiddelde lengte van alle liedjes in de dataset en log het afgeronde resultaat in de console. Gebruik de
reducefunctie om de totale lengte te berekenen en deel het resultaat door het aantal liedjes.Liedjes gesorteerd op lengte: Sorteer de liedjes op lengte, van kortste naar langste, en log het resultaat in de console. Dit kan worden bereikt met de
sortfunctie.Artiesten gesorteerd op aantal liedjes: Sorteer de artiesten op het aantal liedjes, in aflopende volgorde, en log het resultaat in de console. Gebruik de
sortfunctie en maak gebruik van de eerder berekende data.
Oefening: Music Search
Deze applicatie gebruikt dezelfde dataset als de Muziekanalyse oefening.
Bij deze applicatie begin je met een bestaande express applicatie. Zorg eerst goed dat je de applicatie begrijpt.
De applicatie bestaat uit een zoekveld en een lijst van songs. De songs worden opgehaald uit een json bestand. De applicatie is nog niet volledig functioneel. De bedoeling is dat je de applicatie verder afwerkt.
De GET route / aanvaard drie query parameters:
q: de zoekstring. Als deze parameter niet aanwezig is, dan worden alle songs getoond. Als de parameter wel aanwezig is, dan worden enkel de songs getoond waarvan de naam, artiest, album of genre de zoekstring bevat.sortDirection: de sorteerrichting. Als deze parameter niet aanwezig is, dan worden de songs gesorteerd op naam in oplopende richting. Als de parameter wel aanwezig is, dan worden de songs gesorteerd op het veld dat gespecifieerd is in desortFieldparameter. De sorteerrichting wordt bepaald door deze parameter. De mogelijke waarden zijnascendesc.sortField: het veld waarop gesorteerd wordt. Als deze parameter niet aanwezig is, dan worden de songs gesorteerd op naam. Als de parameter wel aanwezig is, dan worden de songs gesorteerd op het veld dat gespecifieerd is in deze parameter. De mogelijke waarden zijnnameenduration.
Je mag in deze opgave geen gebruik maken van for loops. Je moet dus gebruik maken van de array methodes filter, indexOf, map, reduce en sort.
Bij het opstarten van de express applicatie zal je het volgende zien:

Uiteindelijk zal de applicatie er als volgt uitzien:

Last updated
Was this helpful?