Skip to content

Commit ff75557

Browse files
authored
Merge pull request #3 from massam89/week2-Masoud
Week2 masoud
2 parents 0d725f1 + 9bf7295 commit ff75557

13 files changed

Lines changed: 296 additions & 46 deletions

‎Week2/js-exercises/ex1-oddOnesOut.js‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,13 @@ function doubleEvenNumbers(numbers) {
1818
}
1919

2020
const myNumbers = [1, 2, 3, 4];
21-
console.log(doubleEvenNumbers(myNumbers)); // Logs "[4, 8]" to the console
21+
console.log(doubleEvenNumbers(myNumbers)); // Logs "[4, 8]" to the console
22+
23+
24+
//Using map and filter
25+
26+
const doubleEvenNumbers2 = myNumbers
27+
.filter(number => number % 2 == 0)
28+
.map(number => number * 2);
29+
30+
console.log(doubleEvenNumbers2);

‎Week2/js-exercises/ex2-whatsYourMondayWorth.js‎

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,51 @@
1414

1515
function dayWorth(tasks, hourlyRate) {
1616
// put your code in here, the function does returns a euro formatted string
17+
const amountMoney = tasks
18+
.map(number => number.duration / 60 * hourlyRate)
19+
.reduce((a, b) => a + b, 0);
20+
return `\u20AC${Math.round(amountMoney * 100) / 100}`;
1721
}
1822

1923
const mondayTasks = [{
20-
name: 'Daily standup',
21-
duration: 30, // specified in minutes
22-
},
23-
{
24-
name: 'Feature discussion',
25-
duration: 120,
26-
},
27-
{
28-
name: 'Development time',
29-
duration: 240,
30-
},
31-
{
32-
name: 'Talk to different members from the product team',
33-
duration: 60,
34-
},
24+
name: 'Daily standup',
25+
duration: 30, // specified in minutes
26+
},
27+
{
28+
name: 'Feature discussion',
29+
duration: 120,
30+
},
31+
{
32+
name: 'Development time',
33+
duration: 240,
34+
},
35+
{
36+
name: 'Talk to different members from the product team',
37+
duration: 60,
38+
},
3539
];
3640

3741
console.log(dayWorth(mondayTasks, 25))
38-
console.log(dayWorth(mondayTasks, 13.37))
42+
console.log(dayWorth(mondayTasks, 13.37))
43+
44+
//new test array
45+
const fridayTasks = [{
46+
name: 'a',
47+
duration: 40, // specified in minutes
48+
},
49+
{
50+
name: 'b',
51+
duration: 20,
52+
},
53+
{
54+
name: 'c',
55+
duration: 120,
56+
},
57+
{
58+
name: 'd',
59+
duration: 180,
60+
},
61+
];
62+
63+
console.log(dayWorth(fridayTasks, 15))
64+
console.log(dayWorth(fridayTasks, 8.21))

‎Week2/js-exercises/ex3-lemonAllergy.js‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414

1515
function takeOutLemons(basket) {
1616
// your code goes in here. The output is a string
17+
const newBasket = basket.filter(fruit => fruit !== 'Lemon');
18+
return `My mom bought me a fruit basket, containing ${newBasket}`
19+
1720
}
1821

1922
const fruitBasket = ['Apple', 'Lemon', 'Grapefruit', 'Lemon', 'Banana', 'Watermelon', 'Lemon'];

‎Week2/js-exercises/ex4-collectiveAge.js‎

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,27 @@
1010

1111
function collectiveAge(people) {
1212
// return the sum of age for all the people
13+
return people
14+
.map(person => person.age)
15+
.reduce((a, b) => a + b, 0);
1316
}
1417

1518
const hackYourFutureMembers = [{
16-
name: 'Wouter',
17-
age: 33
18-
},
19-
{
20-
name: 'Federico',
21-
age: 32
22-
},
23-
{
24-
name: 'Noer',
25-
age: 27
26-
},
27-
{
28-
name: 'Tjebbe',
29-
age: 22
30-
},
19+
name: 'Wouter',
20+
age: 33
21+
},
22+
{
23+
name: 'Federico',
24+
age: 32
25+
},
26+
{
27+
name: 'Noer',
28+
age: 27
29+
},
30+
{
31+
name: 'Tjebbe',
32+
age: 22
33+
},
3134
];
3235

3336
console.log("The collective age of the HYF team is: " + collectiveAge(hackYourFutureMembers));
Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
1-
<html>
1+
<!DOCTYPE html>
2+
<html lang="en">
23

3-
<!-- your html code goes in here -->
4+
<head>
5+
<meta charset="UTF-8">
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
7+
<title>Hobbies</title>
8+
</head>
9+
10+
<body>
11+
12+
<script src="ex5-myFavoriteHobbies.js"></script>
13+
</body>
414

515
</html>

‎Week2/js-exercises/ex5-myFavoriteHobbies.js‎

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@
1010

1111
function createHTMLList(arr) {
1212
// your code goes in here
13+
const ulElement = document.createElement('ul');
14+
arr.forEach(arr => {
15+
const liElement = document.createElement('li');
16+
liElement.textContent = arr;
17+
ulElement.appendChild(liElement);
18+
})
19+
document.body.appendChild(ulElement);
1320
}
1421

1522
const myHobbies = [
@@ -18,4 +25,7 @@ const myHobbies = [
1825
'Programming',
1926
'Hanging out with friends',
2027
'Going to the gym',
21-
];
28+
];
29+
30+
createHTMLList(myHobbies);
31+

‎Week2/project/app.js‎

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
const timeDown = document.getElementById('time-down');
2+
const timeUp = document.getElementById('time-up');
3+
const timeSelect = document.getElementById('time-select');
4+
const time = document.getElementById('time');
5+
const play = document.getElementById('play');
6+
const pause = document.getElementById('pause');
7+
const stop = document.getElementById('stop');
8+
const bell = new Audio('bell.mp3');
9+
let minute = parseInt(timeSelect.textContent);
10+
let second = 0;
11+
12+
timeUp.addEventListener('click', increaseTime);
13+
timeDown.addEventListener('click', decreaseTime);
14+
stop.addEventListener('click', stopTimer);
15+
play.addEventListener('click', playTimer);
16+
17+
18+
function playTimer() {
19+
timeUp.removeEventListener('click', increaseTime);
20+
timeDown.removeEventListener('click', decreaseTime);
21+
play.removeEventListener('click', playTimer);
22+
pause.addEventListener('click', pauseTimer);
23+
stop.removeEventListener('click', stopTimer);
24+
timer();
25+
const timing = setInterval(timer, 1000);
26+
27+
function timer() {
28+
switch (true) {
29+
case (second == 0):
30+
second = 60;
31+
minute--;
32+
break;
33+
case (minute == 0 && second == 1):
34+
bell.play();
35+
time.textContent = "Time's up!";
36+
clearInterval(timing);
37+
stop.addEventListener('click', stopTimer);
38+
break;
39+
default:
40+
second--;
41+
time.textContent = minute + ':' + second;
42+
};
43+
};
44+
45+
function pauseTimer() {
46+
clearInterval(timing);
47+
pause.removeEventListener('click', pauseTimer);
48+
stop.addEventListener('click', stopTimer);
49+
play.addEventListener('click', playTimer);
50+
};
51+
};
52+
53+
function increaseTime() {
54+
if (timeSelect.textContent == 59) {
55+
timeSelect.textContent = 1;
56+
} else {
57+
timeSelect.textContent = parseInt(timeSelect.textContent) + 1;
58+
minute++;
59+
};
60+
};
61+
62+
function decreaseTime() {
63+
if (timeSelect.textContent == 1) {
64+
timeSelect.textContent = 59;
65+
} else {
66+
timeSelect.textContent = parseInt(timeSelect.textContent) - 1;
67+
minute--;
68+
};
69+
};
70+
71+
function stopTimer() {
72+
minute = 25;
73+
second = 0;
74+
timeSelect.textContent = minute;
75+
time.textContent = minute + ':00';
76+
timeUp.addEventListener('click', increaseTime);
77+
timeDown.addEventListener('click', decreaseTime);
78+
play.addEventListener('click', playTimer);
79+
};

‎Week2/project/bell.mp3‎

87.6 KB
Binary file not shown.

‎Week2/project/digital-7.ttf‎

33.6 KB
Binary file not shown.

‎Week2/project/favicon.ico‎

1.12 KB
Binary file not shown.

0 commit comments

Comments
 (0)