Survey data opschonen - onika123/functional-programming GitHub Wiki
Hoe ben ik begonnen?
Omdat ik nog niet veel ervaring heb met FP ben ik eerst begonnen met de cursus van "Free code camp: Javascript algorithms and Data Structures" zie noties hiervan hier. Dit heeft mij redelijk geholpen om het een en ander te begrijpen.
Oefenen met eigen Array's
//naam en voorstellen
let volledigeNaam = ['Onika', 'Schroder']
volledigeNaam.unshift('Ik ben')
volledigeNaam => ["Ik ben", "Onika", "Schroder"]
//leeftijd toevoegen
let leeftijd = '23 jaar'
volledigeNaam.push(leefijd) => 4
volledigeNaam => ["Ik ben", "Onika", "Schroder", "23 jaar oud"]
//dit korter opschrijven
Survey ID Studenten opschonen
Om te oefenen hebben we toegang gekregen tot de antwoorden van de survey van de Information Design Ik ben begonnen met de oogkleur opschonen, hiervoor heb ik een functie gemaakt waarbij ik elementen in heb staan die ik wil veranderen:
function dataOpschonenOogkleur() {
oogKleurData = antwoordenLijst.map((kleur) => {
return kleur
.toUpperCase() //alle tekst naar hoofdletters
.replace('#','') //alle # verwijderen
.replace('LICHTBLAUW', '3B83BD')
.replace('BRUIN', 'A52A2A')
.replace('BLAUW','3B83BD' )
.replace('GROEN', '35682D')
.replace(/ /g, '') //spaties verwijderen met bron: https://stackoverflow.com/questions/5963182/how-to-remove-spaces-from-a-string-using-javascript
})
}
dataOpschonenOogkleur()
console.log(oogKleurData)
Nu ga ik loggen hoeveel mensen koffie, thee, beide of geen van beide drinken. Dit is op zich een redelijke simpele functie maar ik wou even kijken hoe de filter functie werkte en dit loggen.
function dataOpschonenKoffieThee() {
//antwoorden met alleen koffie
koffieData = koffieThee.filter(entry => entry === "Koffie");
//hoeveel participanten drinken alleen koffie
console.log("Aantal participanten die alleen koffie drinken:", koffieData.length)
//antwoorden met alleen thee
theeData = koffieThee.filter(entry => entry === "Thee");
//hoeveel participanten drinken alleen thee
console.log("Aantal participanten die alleen thee drinken:", theeData.length)
//antwoorden met beide
koffieTheeData = koffieThee.filter(entry => entry === "Thee. Koffie")
//hoeveel participanten drinken beide
console.log("Aantal participanten die beide drinken:", koffieTheeData.length)
//antwoorden met geen van beide
geenVanBeideData = koffieThee.filter(entry => entry === "Geen van beiden")
//hoeveel participanten drinken zowel geen thee als koffie
console.log("Aantal participanten die zowel geen koffie als thee drinken:", geenVanBeideData.length)
};
//functie uitvoeren
dataOpschonenKoffieThee()
De volgende array die ik wou opschonen zijn de antwoorden op de vraag: 'Hoeveel wil ik later verdienen?'. Wat ik hierbij wil doen is:
- Alle niet ingevulde antwoorden eruit halen
- Op volgorde zetten
- Van strings, nummers maken.
Eerst de antwoorden ophalen:
let moneyMakers;
let moneyData = []
for (answer of surveyAnswers) {
moneyData.push(answer.hoeveelPerMaandWillenVerdienen)
}
Vervolgens een functie maken met daarin wat ik wil aanpassen
function opschonenMoneyMakers() {
moneyMakers = moneyData.filter(entry => {
return (entry
.replace('NaN', '0')
)
})
moneyMakers.sort(function (a, b) {
return parseInt(a - b)
})
}