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)
    })
}