Skip to content

Commit a752633

Browse files
authored
Merge pull request #4 from Catsudemo/homework
updated homework to pass tests
2 parents cbafdc6 + 3d4917c commit a752633

18 files changed

Lines changed: 155 additions & 103 deletions

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
.DS_Store
2-
.node_modules
2+
.node_modules

Week1/homework/app.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// 'after_dark',
1313
// ];
1414

15-
const booksInfo = {
15+
let booksInfo = {
1616
memoirs_of_a_geisha: {
1717
properties: {
1818
title: 'Memoirs of a Geisha',

Week2/example.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<style>
77
body {
88
font-family: sans-serif;
9+
text-align: center;
910
}
1011
#advice {
1112
color: slateblue;
@@ -14,7 +15,10 @@
1415
</head>
1516
<body>
1617
<h3>Here is your advice for the day:</h3>
17-
<h1 id="advice"></h1>
18+
<ul id="advice"></ul>
19+
<button id="add-advice">Add more advice</button>
20+
<button id="upcase-everything">Make it upper case!</button>
21+
<button id="lowcase-everything">Make it lower case!</button>
1822
<script type="text/javascript" src="./lecture-exercises.js"></script>
1923
</body>
2024
</html>

Week2/homework/Doublenumbertest.js

Lines changed: 0 additions & 10 deletions
This file was deleted.

Week2/homework/maartjes-work.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@ const maartjesHourlyRate = 20;
4747
const reducer = (accumulator, currentValue) => accumulator + currentValue;
4848

4949
function computeEarnings(tasks, hourlyRate) {
50-
const taskCost = tasks
50+
const earnings = tasks
5151
.map(task => task.duration / 60)
52-
.filter(task => task > 2)
52+
.filter(task => task > 1)
5353
.map(task => task * hourlyRate)
5454
.reduce(reducer, 0);
55-
return taskCost.toFixed(2);
55+
return earnings;
5656
}
5757

5858
// eslint-disable-next-line no-unused-vars

Week2/homework/map-filter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use strict';
22

33
function doubleOddNumbers(numbers) {
4-
return numbers.map(number => (number % 2 !== 0 ? number * 2 : number));
4+
return numbers.filter(number => number % 2 !== 0).map(number => number * 2);
55
}
66

77
const myNumbers = [1, 2, 3, 4];
Lines changed: 29 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,50 @@
1-
/* eslint-disable */
1+
/* eslint-disable no-alert */
22

33
/*
44
Call this function to get a JSON string of the data
55
(simulates calling a server to retrieve data)
66
*/
7-
var name = window.prompt('Enter your name:');
8-
var color = window.prompt('Choose fire, water or grass or take a risk');
7+
const name = window.prompt('Enter your name:');
8+
const color = window.prompt('Choose fire, water or grass or take a risk');
99

1010
function fetchPokemonData(type) {
11-
if (type == 'Fire' || type == 'fire') {
11+
if (type === 'Fire' || type === 'fire') {
1212
return `{"abilities": [{"ability": {"name": "solar-power","url": "https://pokeapi.co/api/v2/ability/94/"},"is_hidden": true,"slot": 3},{"ability": {"name": "blaze","url": "https://pokeapi.co/api/v2/ability/66/" },"is_hidden": false,"slot": 1}],"base_experience": 62,"forms": [{"name": "charmander","url": "https://pokeapi.co/api/v2/pokemon-form/4/"}], "height": 6,"held_items": [],"id": 4,"is_default": true,"location_area_encounters": "https://pokeapi.co/api/v2/pokemon/4/encounters","order": 5,"species": {"name": "charmander", "url": "https://pokeapi.co/api/v2/pokemon-species/4/"},"sprites": {"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/4.png","back_female": null,"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/4.png","back_shiny_female": null,"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/4.png","front_female": null,"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/4.png","front_shiny_female": null}}`;
13-
} else if (type == 'water' || type == 'Water') {
13+
}
14+
if (type === 'water' || type === 'Water') {
1415
return `{"abilities":[{"ability":{"name":"rain-dish","url":"https://pokeapi.co/api/v2/ability/44/"},"is_hidden":true,"slot":3},{"ability":{"name":"torrent","url":"https://pokeapi.co/api/v2/ability/67/"},"is_hidden":false,"slot":1}],"base_experience":63,"forms":[{"name":"squirtle","url":"https://pokeapi.co/api/v2/pokemon-form/7/"}],"height":5,"held_items":[],"id":7,"is_default":true,"location_area_encounters":"https://pokeapi.co/api/v2/pokemon/7/encounters","name":"squirtle","order":10,"species":{"name":"squirtle","url":"https://pokeapi.co/api/v2/pokemon-species/7/"},"sprites":{"back_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/7.png","back_female":null,"back_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/7.png","back_shiny_female":null,"front_default":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/7.png","front_female":null,"front_shiny":"https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/7.png","front_shiny_female":null},"stats":[{"base_stat":43,"effort":0,"stat":{"name":"speed","url":"https://pokeapi.co/api/v2/stat/6/"}},{"base_stat":64,"effort":0,"stat":{"name":"special-defense","url":"https://pokeapi.co/api/v2/stat/5/"}},{"base_stat":50,"effort":0,"stat":{"name":"special-attack","url":"https://pokeapi.co/api/v2/stat/4/"}},{"base_stat":65,"effort":1,"stat":{"name":"defense","url":"https://pokeapi.co/api/v2/stat/3/"}},{"base_stat":48,"effort":0,"stat":{"name":"attack","url":"https://pokeapi.co/api/v2/stat/2/"}},{"base_stat":44,"effort":0,"stat":{"name":"hp","url":"https://pokeapi.co/api/v2/stat/1/"}}],"types":[{"slot":1,"type":{"name":"water","url":"https://pokeapi.co/api/v2/type/11/"}}],"weight":90}`;
15-
} else if (type == 'grass' || type == 'Grass') {
16+
}
17+
if (type === 'grass' || type === 'Grass') {
1618
return `{"abilities": [{"ability": {"name": "chlorophyll","url": "https://pokeapi.co/api/v2/ability/34/"},"is_hidden": true,"slot": 3},{"ability": {"name": "overgrow","url": "https://pokeapi.co/api/v2/ability/65/"},"is_hidden": false,"slot": 1}],"base_experience": 64,"forms": [ {"name": "bulbasaur","url": "https://pokeapi.co/api/v2/pokemon-form/1/"}],"name": "bulbasaur","order": 1,"species": {"name": "bulbasaur","url": "https://pokeapi.co/api/v2/pokemon-species/1/"},"sprites": {"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/1.png","back_female": null,"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/1.png","back_shiny_female": null,"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png","front_female": null,"front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/1.png","front_shiny_female": null},"weight": 69}`;
17-
} else {
18-
return `{"abilities": [{"ability": {"name": "shapeshift","url": "https://pokeapi.co/api/v2/ability/34/"},"is_hidden": true,"slot": 3},{"ability": {"name": "overgrow","url": "https://pokeapi.co/api/v2/ability/65/"},"is_hidden": false,"slot": 1}],"base_experience": 64,"forms": [ {"name": "ditto","url": "https://pokeapi.co/api/v2/pokemon-form/1/"}],"name": "ditto","order": 1,"species": {"name": "ditto","url": "https://pokeapi.co/api/v2/pokemon-species/1/"},"sprites": {"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/132.png","back_female": null,"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/132.png","back_shiny_female": null,"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/132.png","front_female": null, "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/132.png", "front_shiny_female": null},"weight": 69}`;
1919
}
20+
return `{"abilities": [{"ability": {"name": "shapeshift","url": "https://pokeapi.co/api/v2/ability/34/"},"is_hidden": true,"slot": 3},{"ability": {"name": "overgrow","url": "https://pokeapi.co/api/v2/ability/65/"},"is_hidden": false,"slot": 1}],"base_experience": 64,"forms": [ {"name": "ditto","url": "https://pokeapi.co/api/v2/pokemon-form/1/"}],"name": "ditto","order": 1,"species": {"name": "ditto","url": "https://pokeapi.co/api/v2/pokemon-species/1/"},"sprites": {"back_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/132.png","back_female": null,"back_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/back/shiny/132.png","back_shiny_female": null,"front_default": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/132.png","front_female": null, "front_shiny": "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/shiny/132.png", "front_shiny_female": null},"weight": 69}`;
2021
}
2122

2223
function pokemonName(type) {
2324
type = type.toLowerCase();
24-
if (type == 'fire') {
25+
if (type === 'fire') {
2526
return 'Charmander';
2627
}
27-
if (type == 'water') {
28+
if (type === 'water') {
2829
return 'Squirtle';
2930
}
30-
if (type == 'grass') {
31+
if (type === 'grass') {
3132
return 'Bulbasaur';
32-
} else {
33-
return "...Oh! It seems that was actually a Ditto! Well I'm sure it";
3433
}
34+
return "...Oh! It seems that was actually a Ditto! Well I'm sure it";
3535
}
3636

37-
let pokeName = pokemonName(color);
37+
const pokeName = pokemonName(color);
3838

3939
function parsemon() {
40-
let pokeProperties = JSON.parse(fetchPokemonData(color));
41-
let justSprites = Object.keys(pokeProperties.sprites)
40+
const pokeProperties = JSON.parse(fetchPokemonData(color));
41+
const justSprites = Object.keys(pokeProperties.sprites)
4242
.map(key => pokeProperties.sprites[key])
4343
.filter(sprite => sprite);
4444
return justSprites;
4545
}
46-
let unorderedSprites = parsemon();
47-
let sprites = unorderedSprites.reverse();
46+
const unorderedSprites = parsemon();
47+
const sprites = unorderedSprites.reverse();
4848

4949
const mySpriteSpot = document.querySelector('#poke-selector');
5050

@@ -58,22 +58,18 @@ const div = document.createElement('div');
5858
div.setAttribute('class', 'wrapper');
5959

6060
for (sprite in sprites) {
61-
const eachSpriteDiv = document.createElement('div');
62-
eachSpriteDiv.id = sprite;
63-
eachSpriteDiv.setAttribute('class', 'box');
64-
65-
// const name = document.createElement('h4');
66-
// name.innerText = `This is sprite ${sprite}`;
67-
// eachSpriteDiv.appendChild(name);
68-
// console.log(name);
61+
if (sprite) {
62+
const eachSpriteDiv = document.createElement('div');
63+
eachSpriteDiv.id = sprite;
64+
eachSpriteDiv.setAttribute('class', 'box');
65+
const picture = document.createElement('IMG');
66+
picture.src = sprites[sprite];
67+
eachSpriteDiv.appendChild(picture);
6968

70-
const picture = document.createElement('IMG');
71-
picture.src = sprites[sprite];
72-
eachSpriteDiv.appendChild(picture);
69+
div.appendChild(eachSpriteDiv);
7370

74-
div.appendChild(eachSpriteDiv);
71+
mySpriteSpot.appendChild(div);
7572

76-
mySpriteSpot.appendChild(div);
77-
78-
console.log('Name is' + name + 'sprite is' + sprites[sprite]);
73+
console.log('Name is' + name + 'sprite is' + sprites[sprite]);
74+
}
7975
}

Week2/homework/squirtle-sprites.js

Lines changed: 0 additions & 11 deletions
This file was deleted.

Week2/lecture-exercises.js

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,56 @@ async function getRandomAdvice() {
99
return adviceData.slip.advice;
1010
}
1111

12+
let allAdvice = [];
13+
const adviceEl = document.getElementById('advice');
14+
15+
function updateDOM() {
16+
adviceEl.innerHTML = '';
17+
allAdvice.forEach(advice => {
18+
const adviceItem = document.createElement('li');
19+
adviceEl.appendChild(adviceItem);
20+
adviceItem.innerText = advice;
21+
22+
const removeButton = document.createElement('button');
23+
removeButton.innerText = 'X';
24+
adviceItem.appendChild(removeButton);
25+
26+
removeButton.addEventListener('click', () => deleteAdvice(index));
27+
});
28+
}
29+
30+
function deleteAdvice(index) {
31+
allAdvice.splice(index, 1);
32+
updateDOM();
33+
}
34+
/* function deleteAdvice {
35+
let howMuchAdvice = allAdvice.length
36+
if (howMuchAdvice > 10) {
37+
allAdvice.splice(0, 1);
38+
updateDOM();
39+
}
40+
else {
41+
console.log("looks fine");
42+
}
43+
} */
44+
1245
async function setRandomAdvice() {
13-
const adviceEl = document.getElementById('advice');
14-
adviceEl.innerText = await getRandomAdvice();
46+
allAdvice.push(await getRandomAdvice());
47+
updateDOM();
1548
}
1649

17-
setRandomAdvice();
50+
function upcaseAllAdvice() {
51+
allAdvice = allAdvice.map(advice => advice.toUpperCase());
52+
updateDOM();
53+
}
54+
55+
function lowcaseAllAdvice() {
56+
allAdvice = allAdvice.map(advice => advice.toLowerCase());
57+
updateDOM();
58+
}
59+
60+
document.getElementById('add-advice').addEventListener('click', setRandomAdvice);
61+
62+
document.getElementById('upcase-everything').addEventListener('click', lowcaseAllAdvice);
63+
64+
document.getElementById('upcase-everything').addEventListener('click', upcaseAllAdvice);

Week3/homework/step2-1.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
'use strict';
22

33
function foo(func) {
4-
// What to do here?
5-
// Replace this comment and the next line with your code
6-
console.log(func);
4+
func();
75
}
86

97
function bar() {

0 commit comments

Comments
 (0)