# Week 3
# Calculate dog years
De leeftijd van een hond ken je in mensenjaren. Hoe oud is een hond in hondenjaren? Eén mensenjaar komt overeen met zeven hondenjaren.
- Maak een bestand
calculate_dog_years.jsaan in de reeds aangemaakt folderweek-3. - Schrijf een functie genaamd
calculateDogYearsdat:- 1 argument bevat: de leeftijd van de hond in de tijd
- bereken de leeftijd van de hond in hondenjaren (1 mensenjaar = 7 hondenjaren)
- de functie geeft de leeftijd in hondenjaren terug
- output de geretourneerde waarde van
calculateDogYearsnaar de console zoals: “Your dog is 35 years old in dog years!” - Roep deze functie 2 keer aan, steeds met een andere waarde voor het argument
Start vanuit volgende template:
// TODO: calculateDogYears functie met 1 argument
// test output
console.log(`Your dog is ${calculateDogYears(7)} years old`);
console.log(`Your dog is ${calculateDogYears(10)} years old`);
2
3
4
5
./artevelde/pgm-code/pgm-1/week-3/calculate_dog_years.js
function calculateDogYears(humanYears) {
const dogYears = humanYears * 7;
return dogYears;
}
console.log(`Your dog is ${calculateDogYears(7)} years old`);
console.log(`Your dog is ${calculateDogYears(10)} years old`);
2
3
4
5
6
7
# Return item
- Maak een bestand
return_item.jsaan in de reeds aangemaakt folderweek-3. - Schrijf een functie genaamd
getItemdat:- 2 argumenten bevat:
- een array
- een index (number)
- Zorg dat deze functie het item uit de array op de gekozen index terug geeft
- 2 argumenten bevat:
- Roep deze functie enkele keren op
Start vanuit volgende template:
// TODO: getItem functie met 2 argumenten
// test output
console.log(getItem([1, 2, 3, 4, 5], 2)); // 3
console.log(getItem(['a', 'b', 'c'], 0)); // 'a'
2
3
4
5
./artevelde/pgm-code/pgm-1/week-3/return_item.js
function getItem(array, index) {
return array[index];
}
console.log(getItem([1, 2, 3, 4, 5], 2)); // 3
console.log(getItem(["a", "b", "c"], 0)); // 'a'
2
3
4
5
6
# Matcher
Met deze applicatie combineren we een bepaalde leeftijdsgroep met een bepaald product die we verkopen via een webshop.
Stappenplan:
- Maak een bestand
matcher.jsaan in de reeds aangemaakt folderweek-3. - Variabele (array) met de volgende elementen: ‘7 tot 11’, ‘11 tot 15’, ‘15 - 18’, ‘18 - 23’, ‘23 - 28’, ‘28 - 36’, ‘36 - 50’, ‘50 - 64’, ‘64 - 80’
- Variabele (array) met de volgende elementen: ‘pruiken’, ‘nagels’, ‘aquariums’, ‘mondmaskers’, ‘sneakers’, ‘gepersonaliseerd wc-papier’
- Schrijf een functie genaamd
generateMatchdat:- de combinatie van een willekeurige leeftijdsgroep uit de leeftijdsgroep-array en een willekeurig product uit de producten-array terggeeft.
- Roep de functie enkele keren aan en log de geretourneerde waarde (string) naar de console
Start vanuit volgende template:
// TODO: array met leeftijdsgroepen
// TODO: array met producten
function generateRandomNumber(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
// TODO: functie generateMatch
// test output
console.log(generateMatch());
console.log(generateMatch());
console.log(generateMatch());
2
3
4
5
6
7
8
9
10
11
12
13
14
Mogelijke oplossing:Voorbeeld resultaat
Maak een webshop voor 64 - 80 jarigen waar ze gepersonaliseerd wc-papier verkopen. Maak een webshop voor 23 - 28 jarigen waar ze nagels verkopen. Maak een webshop voor 18 - 23 jarigen waar ze aquariums verkopen.
./artevelde/pgm-code/pgm-1/week-4/matcher.js
const ageRanges = [
"7 tot 11",
"11 tot 15",
"15 - 18",
"18 - 23",
"23 - 28",
"28 - 36",
"36 - 50",
"50 - 64",
"64 - 80",
];
const subjects = ["pruiken", "nagels", "aquariums", "mondmaskers", "sneakers", "gepersonaliseerd wc-papier"];
function generateRandomNumber(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
function generateMatch() {
const ageRange = ageRanges[generateRandomNumber(0, ageRanges.length - 1)];
const subject = subjects[generateRandomNumber(0, subjects.length - 1)];
return `Maak een webshop voor ${ageRange} jarigen waar ze ${subject} verkopen.`;
}
console.log(generateMatch());
console.log(generateMatch());
console.log(generateMatch());
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Loop through arrays
Maak een bestand array_loops.js aan in de reeds aangemaakt folder week-3. In deze applicatie itereren we doorheen een array:
- Definieer een array met de volgende elementen:
Eden Hazard,Kevin De Bruyne,Romelu Lukaku,Thibault Courtois,Dries Mertens. - Log de elementen van de array.
- Definieer een variabele
tempStrmet als waarde een lege string. - Doorlop de array met een
forEach-lus en voeg nieuwe content (tekst) toe aan de variabeletempStr. Log de variabeletempStrnaar het output scherm. - Doe nu hetzelfde met een
for...of-lus
Deze oefening heeft als doel om te oefenen met het doorlopen van arrays met verschillende soorten lussen.
Mogelijke oplossing:./artevelde/pgm-code/pgm-1/week-3/array_loops.js
const redDevils = ["Eden Hazard", "Kevin De Bruyne", "Romelu Lukaku", "Thibault Courtois", "Dries Mertens"];
let tempStr = "";
for (let i = 0; i < redDevils.length; i++) {
tempStr += `Player ${i + 1} : ${redDevils[i]}\n`;
}
console.log(tempStr);
tempStr = "";
redDevils.forEach(function (player, index) {
tempStr += `Player ${index + 1} : ${player}\n`;
});
console.log(tempStr);
tempStr = "";
let p = 1;
for (let player of redDevils) {
tempStr += `Player ${p} : ${player}\n`;
p++;
}
console.log(tempStr);
tempStr = "";
p = 1;
for (let property in redDevils) {
tempStr += `Player ${p} : ${redDevils[property]}\n`;
p++;
}
console.log(tempStr);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Curriculum Vitae (CV)
Maak een bestand curriculum_vitae.js aan in de reeds aangemaakt folder week-2.
Schrijf een JavaScript programma waarin een curriculum vitae (Afk.: CV) wordt beschreven d.m.v. een object initalizer (opens new window). Een CV bevat:
| Eigenschap | Datatype | Opmerkingen |
|---|---|---|
| familienaam | string | |
| voornaam | string | |
| geslacht | string | |
| leeftijd | number | |
| getrouwd | boolean | |
| avatar | string (unicode character) | |
| lijfspreuk | string | |
| talenkennis | string | 100 % betekent 10 x * |
Print de eigenschappen (en waarde) naar de console via een lus.
Mogelijke oplossing:./artevelde/pgm-code/pgm-1/week-3/curriculum_vitae.js
const cv = {
firstName: "Philippe",
surName: "De Pauw - Waterschoot",
sex: "Male",
age: 36,
unicodeAvatar: "\u{1F344}",
married: false,
quote: "I'm a future talent in front-end development",
langDutchLevel: "*********",
langEnglishLevel: "*******",
langFrenchLevel: "*****",
};
/*
* Loop through the properties via the for...in loop
* for each property prop in the list of properties we will log the property and its value
*/
for (let prop in cv) {
if (cv.hasOwnProperty(prop)) {
console.log(`The property ${prop} has the value ${cv[prop]}`);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Curriculum Vitae (CV) - Uitbreiding
Maak een bestand curriculum_vitae_extended.js aan in de reeds aangemaakt folder week-3.
Kopieer het object uit de vorige oefening.
Declareer nu een nieuwe variabele template en vul deze met een template string. Gebruik de variabelen uit het object om de template string in te vullen. Log naar de console.
Output
Name: Philippe De Pauw - Waterschoot
Sex: Male
Age: 36
Avatar: 🍄
Married: false
=======================================
"I'm a future talent in front-end development"
=======================================
Languages
---------------------------------------
Dutch: *********
English: *******
French: *****
./artevelde/pgm-code/pgm-1/week-3/curriculum_vitae_extended.js
const cv = {
firstName: "Philippe",
surName: "De Pauw - Waterschoot",
sex: "Male",
age: 36,
unicodeAvatar: "\u{1F344}",
married: false,
quote: "I'm a future talent in front-end development",
langDutchLevel: "*********",
langEnglishLevel: "*******",
langFrenchLevel: "*****",
};
const template = `
Name: ${cv.firstName} ${cv.surName}
Sex: ${cv.sex}
Age: ${cv.age}
Avatar: ${cv.unicodeAvatar}
Married: ${cv.married}
=======================================
"${cv.quote}"
=======================================
Languages
---------------------------------------
Dutch: ${cv.langDutchLevel}
English: ${cv.langEnglishLevel}
French: ${cv.langFrenchLevel}
`;
console.log(template);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Book
Maak een bestand book.js aan in de reeds aangemaakt folder week-3.
Declareer een variabele book. Dit is een object en bevat volgende velden:
title(string)authorfirstName(string)lastName(string)
pages(number)
De waarden van de variabelen kies je zelf.
Declareer nu een nieuwe variabele template en vul deze met een template string. Gebruik de variabelen uit het object om de template string in te vullen. Log naar de console.
Output
JavaScript for Dummies (399 pages)
by John Doe
./artevelde/pgm-code/pgm-1/week-3/book.js
const book = {
title: "The Hunger Games",
author: {
firstName: "Suzanne",
lastName: "Collins",
},
pages: 374,
};
const template = `
${book.title} (${book.pages} pages)
by ${book.author.firstName} ${book.author.lastName}
`;
console.log(template);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Student information
Schrijf een JavaScript programma waarin student informatie wordt beschreven d.m.v. een object initalizer (opens new window). Een student bevat:
- familienaam (string)
- voornaam (string)
- geslachtscode (number)
- geboortedatum (number t.o.v. 1970)
- cursussen (array van objecten)
- cursus (object)
- naam (string)
- docenten (array van strings)
- cursus (object)
Print alle eigenschappen naar de console om het volgende resultaat te genereren:
======================================================
| STUDENT INFORMATION |
======================================================
PERSONAL
======================================================
Name: Olivier Pieters
Gender: Male
Day of birth: Fri Dec 12 1975
======================================================
COURSES
======================================================
Course: Data Management
Lecturers: Dieter De Weirdt
------------------------------------------------
Course: Web-1
Lecturers: Evelien Rutsaert
------------------------------------------------
Course: Programming-1
Lecturers: Niels Minne, Michael Vanderpoorten
------------------------------------------------
Course: IT Professional
Lecturers: Isabelle Volckaert, Claire Geeraerts
======================================================
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Stappenplan:
- Maak een bestand
student_information.jsaan in de reeds aangemaakt folderweek-3. - Schrijf een functie genaamd
generateStringForGenderdat:- 1 argument bevat: de genderCode (number)
- geeft leesbare formaat terug op basis van genderCode, bijv.
2geeftGender: Female
- Schrijf een functie genaamd
generateStringForLecturersdat:- 1 argument bevat: de lecturers (array)
- geeft leesbare formaat terug van de docenten
- Schrijf een functie genaamd
generateStringForCoursesdat:- 1 argument bevat: de courses (array)
- geeft leesbare formaat terug van de cursussen. Deze zal dus ook de functie
generateStringForLecturersmoeten aanroepen.
- Schrijf een functie genaamd
generateStringForStudentdat:- 1 argument bevat: het student object
- geeft de student informatie terug als string. Deze zal dus heel de student informatie bevatten en zal de functies
generateStringForGender,generateStringForCoursesaanroepen.
Start vanuit volgende template:
const student = {
// todo
}
// TODO: functie generateStringForLecturers
// TODO: functie generateStringForCourses
// TODO: generateStringForGender
// TODO: functie generateStringForStudent
// test output
console.log(generateStringForStudent(student));
2
3
4
5
6
7
8
9
10
11
12
13
14
./artevelde/pgm-code/pgm-1/week-3/student_information.js
const student = {
name: "Vanderpoorten",
firstName: "Michael",
genderCode: 0,
dateOfBirth: 705535200000,
courses: [
{
name: "Data Management",
lecturers: ["Adriaan Glibert"],
},
{
name: "Web 1",
lecturers: ["Evelien Rutsaert", "Sjouwke Van Parys"],
},
{
name: "Programming 1",
lecturers: ["Niels Minne", "Michael Vanderpoorten"],
},
{
name: "IT Professional",
lecturers: ["Claire Geeraerts", "Isabelle Volckaert"],
},
],
};
function generateStringForLecturers(lecturers) {
return lecturers.join(", ");
}
function generateStringForCourses(courses) {
let text = "";
for (const course of courses) {
text += `
Course: ${course.name}
Lecturers: ${generateStringForLecturers(course.lecturers)}
------------------------------------------------
`;
}
return text;
}
function generateStringForGender(gender) {
if (gender === 0) {
return "Male";
} else if (gender === 1) {
return "Female";
} else {
return "Onbekend";
}
}
function generateStringForStudent(student) {
return `
======================================================
| STUDENT INFORMATION |
======================================================
PERSONAL
======================================================
Name: ${student.firstName} ${student.name}
Gender: "${generateStringForGender(student.genderCode)}"
Day of birth: ${new Date(student.dateOfBirth)}
======================================================
COURSES
======================================================
${generateStringForCourses(student.courses)}
======================================================`;
}
console.log(generateStringForStudent(student));
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# The reading list
Maak een bestand the_reading_list.js aan in de reeds aangemaakt folder week-3.
Maak een array van objecten aan, waarin een object een boek beschrijft met de volgende eigenschappen:
title(string)author(string)alreadyRead(boolean om aan te duiden of je al dan niet het boek hebt gelezen)
Itereer doorheen de array van boeken. Als je het boek al hebt gelezen dan log je You already read "The Hobbit" by J.R.R. Tolkien. Heb je het boek niet gelezen dan log je You still need to read "To Kill a Mockingbird" by Harper Lee.
Mogelijke oplossing:Voorbeeld
============================================================================= | READING LIST | ============================================================================= You already read "The Hobbit" by J.R.R. Tolkien You still need to read "To Kill a Mockingbird" by Harper Lee You still need to read "The Great Gatsby" by F. Scott Fitzgerald =============================================================================
./artevelde/pgm-code/pgm-1/week-4/the_reading_list.js
const readingList = [
{
title: "The Hobbit",
author: "J.R.R. Tolkien",
alreadyRead: true,
},
{
title: "To Kill a Mockingbird",
author: "Harper Lee",
alreadyRead: false,
},
{
title: "The Great Gatsby",
author: "F. Scott Fitzgerald",
alreadyRead: false,
},
];
let tempStr = `
=============================================================================
| READING LIST |
=============================================================================`;
for (const book of readingList) {
tempStr += "";
if (book.alreadyRead) {
tempStr += "You already read ";
} else {
tempStr += "You still need to read ";
}
tempStr += `"${book.title}" by ${book.author}`;
}
tempStr += "\n=============================================================================";
console.log(tempStr);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# The recipe card
Maak een bestand the_recipe_card.js aan in de reeds aangemaakt folder week-3.
Maak een object om informatie te beschrijven van jouw favoriet gerecht. Het object bevat de eigenschappen:
title(a string)servings(a number)ingredients(an array of objects).nameamount
Mogelijke oplossing:Voorbeeld
============================================ | FAVORITE RECIPE | ============================================ Name: Oosterse wortelgazpacho -------------------------------------------- Servings: 4 -------------------------------------------- Ingredients -------------------------------------------- 550 gr wortels 250 ml kokosmelk 2 el rode wijnazijn 1 tl rode currypasta 1 stengel limoengras (het witte stukje) 1 teentje look 1 scheutje water peper - zout ============================================
./artevelde/pgm-code/pgm-1/week-4/the_recipe_card.js
const favoriteRecipe = {
title: "Oosterse wortelgazpacho",
servings: 4,
ingredients: [
{
name: "wortels",
amount: "550 gr",
},
{
name: "kokosmelk",
amount: "250 ml",
},
{
name: "rode wijnazijn",
amount: "2 el",
},
{
name: "rode currypasta",
amount: "1 tl",
},
{
name: "limoengras (het witte stukje)",
amount: "1 stengel",
},
{
name: "look",
amount: "1 teentje",
},
{
name: "water",
amount: "1 scheutje",
},
{
name: "peper - zout",
},
],
};
function convertIngredientsToString(ingredients) {
let tempStr = "";
for (const ingredient of ingredients) {
tempStr += `${ingredient.amount ? ingredient.amount : "\t"}\t${ingredient.name}\n`;
}
return tempStr;
}
const msg = `
============================================
| FAVORITE RECIPE |
============================================
Name:\t\t${favoriteRecipe.title}
--------------------------------------------
Servings:\t${favoriteRecipe.servings}
--------------------------------------------
Ingedients
--------------------------------------------
${convertIngredientsToString(favoriteRecipe.ingredients)}
============================================
`;
console.log(msg);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Count a specified character
Met deze applicatie tellen we hoeveel keer een specifiek teken aanwezig is in een string, bijv. het teken a komt 2x voor in JavaScript.
Stappenplan:
- Maak een bestand
count_specified_character.jsaan in de reeds aangemaakt folderweek-3. - Schrijf een functie genaamd
countSpecifiedCharacterdat:- 1e argument: de tekst waarin we een specifiek teken moeten tellen
- 2e argument: het teken dat we zullen tellen in de string
- geeft het aantal
Start vanuit volgende template:
// TODO: functie countSpecifiedCharacter
// test output
const sentence = "JavaScript is amazing";
console.log(countSpecifiedCharacter(sentence, "a")); // 4
console.log(countSpecifiedCharacter(sentence, "v")); // 1
console.log(countSpecifiedCharacter(sentence, "x")); // 0
2
3
4
5
6
7
./artevelde/pgm-code/pgm-1/week-3/count_specified_character.js
function countSpecifiedCharacter(text, character) {
const characters = text.split(""); // alle characters in een array
let count = 0;
for (const char of characters) {
if (char.toLowerCase() === character.toLowerCase()) {
count++;
}
}
return count;
}
const sentence = "JavaScript is amazing";
console.log(countSpecifiedCharacter(sentence, "a"));
console.log(countSpecifiedCharacter(sentence, "v"));
console.log(countSpecifiedCharacter(sentence, "x"));
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Search within an array
Maak een bestand array_search.js aan in de reeds aangemaakt folder week-3. In deze applicatie zoeken we naar elementen in een array die beantwoorden aan een bepaalde criteria:
- Definieer een array met de volgende elementen:
ant,bison,camel,duck,bison. - Zoek de eerste index van het element waarvan de waarde gelijk is aan
bisonmet deindexOf()methode. Bewaar de returnwaarde in een variabelefoundIndex. - Log de variabele
foundIndex. - Zoek vanaf een bepaalde index de eerste index van het element waarvan de waarde gelijk is aan
bisonmet deindexOf()methode. Bewaar de returnwaarde in een variabelefoundIndex. - Log de variabele
foundIndex. - Zoek de eerste index van het element waarvan de waarde gelijk is aan
capibaramet deindexOf()methode. Bewaar de returnwaarde in een variabelefoundIndex. - Log de variabele
foundIndex. - Zoek de laatste index van het element waarvan de waarde gelijk is aan
bisonmet delastIndexOf()methode. Bewaar de returnwaarde in een variabelefoundIndex. - Log de variabele
foundIndex. - Zoek vanaf een bepaalde index de laatste index van het element waarvan de waarde gelijk is aan
bisonmet delastIndexOf()methode. Bewaar de returnwaarde in een variabelefoundIndex. - Log de variabele
foundIndex. - Definieer een array met de volgende elementen:
5,12,8,130,44. - Zoek de eerste index van het element waarvan de waarde groter is dan
13met defindIndex()methode. Bewaar de returnwaarde in een variabelefoundIndex. - Log de variabele
foundIndex. - Zoek de eerste element waarvan de waarde groter is dan
10met defind()methode. Bewaar de returnwaarde in een variabelefoundElement. - Log de variabele
foundElement. - Definieer een array met de volgende elementen:
spray,limit,elite,exuberant,destruction,present. - Zoek alle elementen waarvan de lengte van de waarde groter is dan
6met defilter()methode. Bewaar de returnwaarde in een variabelefilteredWords. - Log de variabele
filteredWords.
./artevelde/pgm-code/pgm-1/week-4/array_search.js
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];
let foundIndex = beasts.indexOf('bison');
console.log(`The index found of an element with value bison: ${foundIndex}.`);
foundIndex = beasts.indexOf('bison', 2);
console.log(`The index found of an element with value bison: ${foundIndex}.`);
foundIndex = beasts.indexOf('capibara');
console.log(`The index found of an element with value capibara: ${foundIndex}.`);
foundIndex = beasts.lastIndexOf('bison');
console.log(`The index found of an element with value bison: ${foundIndex}.`);
foundIndex = beasts.lastIndexOf('bison', 2);
console.log(`The index found of an element with value bison: ${foundIndex}.`);
const numbers = [5, 12, 8, 130, 44];
foundIndex = numbers.findIndex(function (num) {
return num > 13;
});
console.log(`The index found of an element with value > 13: ${foundIndex}.`);
let foundElement;
foundElement = numbers.find(function (num) {
return num > 10;
});
console.log(`The element found with value > 10: ${foundElement}.`);
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const filteredWords = words.filter(function (w) {
return w.length > 6
});
console.log(`The elements filtered with string length > 6: ${filteredWords}.`); 2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Omgekeerde volgorde
Maak een bestand array_reversed.js aan in de reeds aangemaakt folder week-3.
Maak een array aan en zorg dan dat je de array afdrukt in de omgekeerde volgorde.
const arr = [43, "what", 9, true, "cannot", false, "be", 3, true];
// Example output:
// true 3 be false cannot true 9 what 43
2
3
./artevelde/pgm-code/pgm-1/week-2/array_reversed.js
const arr = [43, "what", 9, true, "cannot", false, "be", 3, true];
arr.reverse();
console.log(arr);
2
3
4
5
# Nested arrays
Schrijf een JavaScript programma die de elementen uit een array (met nested array (opens new window)) print in de console.
Voorbeeld array:
const a = [
[1, 2, 1, 24],
[8, 11, 9, 4],
[7, 0, 7, 27],
[7, 4, 28, 14],
[3, 10, 26, 7],
];
2
3
4
5
6
7
Mogelijke oplossing:Voorbeeld output
"------------------------------------------------------"; "row 0"; "------------------------------------------------------"; "1"; "2"; "1"; "24"; "------------------------------------------------------"; "row 1"; "------------------------------------------------------";1
2
3
4
5
6
7
8
9
10
./artevelde/pgm-code/pgm-1/week-4/nested_arrays.js
/*
* Nested arrays
* ===================================================================
* Course: Programming 1: Front-End Essentials
* Week: 4
* Developed by: Philippe De Pauw - Waterschoot
* Last updated: 27/09/2020
* ===================================================================
*/
const a = [
[1, 2, 1, 24],
[8, 11, 9, 4],
[7, 0, 7, 27],
[7, 4, 28, 14],
[3, 10, 26, 7],
];
let tempStr = "";
/*
* Optie 1
*/
let i = 0;
for (const row of a) {
tempStr += "------------------------------------------------------\n";
tempStr += `row ${i}`;
tempStr += "\n------------------------------------------------------\n";
for (const column of row) {
tempStr += column + "\n";
}
i++;
}
console.log(tempStr); // Log the value of the temporary string (tempStr) to the console
/*
* Optie 2
*/
tempStr = ""; // terug leeg maken voor optie 2
for (let i = 0; i < a.length; i++) {
tempStr += "------------------------------------------------------\n";
tempStr += `row ${i}`;
tempStr += "\n------------------------------------------------------";
const nestedArray = a[i];
for (let j = 0; j < nestedArray.length; j++) {
tempStr += `\n ${nestedArray[j]}`;
}
tempStr += "\n";
}
console.log(tempStr); // Log the value of the temporary string (tempStr) to the console
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Filter within an array of objects
Maak een bestand array_search_objects.js aan in de reeds aangemaakt folder week-3. In deze applicatie zoeken we naar elementen in een array die beantwoorden aan een bepaalde criteria:
- Definieer een array met de volgende elementen:
{ name: 'apples', quantity: 2 },{ name: 'bananas', quantity: 0 },{ name: 'cherries', quantity: 5 }. - Definieer een variabele
tempStrmet als waarde een lege string. - Doorlop de array
filteredInventorymet eenfor...ofmethode en ken bij iedere iteratie nieuwe content (tekst) toe aan de variabeletempStr. Voeg enkel deze toe waarvan de quantity groter is dan 0. - Log de variabele
tempStrnaar het output scherm (dezelfde output dan in het voorbeeld).
Mogelijke oplossing:Voorbeeld
Product 1: apples Product 2: cherries
./artevelde/pgm-code/pgm-1/week-4/array_search_objects.js
const inventory = [
{ name: "apples", quantity: 2 },
{ name: "bananas", quantity: 0 },
{ name: "cherries", quantity: 5 },
];
let tempStr = "";
let i = 0;
for (const product of inventory) {
if (product.quantity > 0) {
tempStr += `Product ${i + 1} : ${product.name}\n`;
}
i++;
}
console.log(tempStr);
2
3
4
5
6
7
8
9
10
11
12
13
14
# Reverse number
Deze applicatie keert een numerieke waarde om, bijv.: 12345 wordt 54321.
- Maak een bestand
reverse_number.jsaan in de reeds aangemaakt folderweek-3. - Schrijf een functie genaamd
reversedat:- 1 argument bevat: het getal die we willen omkeren
- de functie geeft het omgekeerde getal terug
- Roep deze functie 2 keer aan, steeds met een andere waarde voor het argument.
- Log het resultaat van elke aanroep naar de console.
./artevelde/pgm-code/pgm-1/week-3/reverse_number.js
/*
* optie 1
*/
function reverse(number) {
const nums = number.toString().split(""); // string naar array
let tempStr = "";
for (const num of nums) {
tempStr = num + tempStr; // plak het nummer voor de al bestaande string
}
return parseInt(tempStr);
}
/*
* optie 2
*/
function reverseAlt(num) {
let numStr = num.toString();
let tempStr = "";
for (let i = numStr.length - 1; i >= 0; i--) {
tempStr += numStr.charAt(i);
}
return parseInt(tempStr);
}
let num = 12345;
console.log(`The reversed number of ${num} is ${reverse(num)}.`);
num = 987654321;
console.log(`The reversed number of ${num} is ${reverse(num)}.`);
num = 1010101011;
console.log(`The reversed number of ${num} is ${reverseAlt(num)}.`);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30