8000 updated homework to pass tests by Catsudemo · Pull Request #4 · Catsudemo/JavaScript2 · GitHub
[go: up one dir, main page]

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
.DS_Store
.node_modules
.node_modules
2 changes: 1 addition & 1 deletion Week1/homework/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
// 'after_dark',
// ];

const booksInfo = {
let booksInfo = {
memoirs_of_a_geisha: {
properties: {
title: 'Memoirs of a Geisha',
Expand Down
6 changes: 5 additions & 1 deletion Week2/example.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
<style>
body {
font-family: sans-serif;
text-align: center;
}
#advice {
color: slateblue;
Expand All @@ -14,7 +15,10 @@
</head>
<body>
<h3>Here is your advice for the day:</h3>
<h1 id="advice"></h1>
<ul id="advice"></ul>
<button id="add-advice">Add more advice</button>
<button id="upcase-everything">Make it upper case!</button>
<button id="lowcase-everything">Make it lower case!</button>
<script type="text/javascript" src="./lecture-exercises.js"></script>
</body>
</html>
10 changes: 0 additions & 10 deletions Week2/homework/Doublenumbertest.js

This file was deleted.

6 changes: 3 additions & 3 deletions Week2/homework/maartjes-work.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,12 @@ const maartjesHourlyRate = 20;
const reducer = (accumulator, currentValue) => accumulator + currentValue;

function computeEarnings(tasks, hourlyRate) {
const taskCost = tasks
const earnings = tasks
.map(task => task.duration / 60)
.filter(task => task > 2)
.filter(task => task > 1)
.map(task => task * hourlyRate)
.reduce(reducer, 0);
return taskCost.toFixed(2);
return earnings;
}

// eslint-disable-next-line no-unused-vars
Expand Down
2 changes: 1 addition & 1 deletion Week2/homework/map-filter.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use strict';

function doubleOddNumbers(numbers) {
return numbers.map(number => (number % 2 !== 0 ? number * 2 : number));
return numbers.filter(number => number % 2 !== 0).map(number => number * 2);
}

const myNumbers = [1, 2, 3, 4];
Expand Down
62 changes: 29 additions & 33 deletions Week2/homework/pokemon/poke-sprites.js
Original file line number Diff line number Diff line change
@@ -1,50 +1,50 @@
/* eslint-disable */
/* eslint-disable no-alert */

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

function fetchPokemonData(type) {
if (type == 'Fire' || type == 'fire') {
if (type === 'Fire' || type === 'fire') {
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}}`;
} else if (type == 'water' || type == 'Water') {
}
if (type === 'water' || type === 'Water') {
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}`;
} else if (type == 'grass' || type == 'Grass') {
}
if (type === 'grass' || type === 'Grass') {
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}`;
} else {
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}`;
}
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}`;
}

function pokemonName(type) {
type = type.toLowerCase();
if (type == 'fire') {
if (type === 'fire') {
return 'Charmander';
}
if (type == 'water') {
if (type === 'water') {
return 'Squirtle';
}
if (type == 'grass') {
if (type === 'grass') {
return 'Bulbasaur';
} else {
return "...Oh! It seems that was actually a Ditto! Well I'm sure it";
}
return "...Oh! It seems that was actually a Ditto! Well I'm sure it";
}

let pokeName = pokemonName(color);
const pokeName = pokemonName(color);

function parsemon() {
let pokeProperties = JSON.parse(fetchPokemonData(color));
let justSprites = Object.keys(pokeProperties.sprites)
const pokeProperties = JSON.parse(fetchPokemonData(color));
const justSprites = Object.keys(pokeProperties.sprites)
.map(key => pokeProperties.sprites[key])
.filter(sprite => sprite);
return justSprites;
}
let unorderedSprites = parsemon();
let sprites = unorderedSprites.reverse();
const unorderedSprites = parsemon();
const sprites = unorderedSprites.reverse();

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

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

for (sprite in sprites) {
const eachSpriteDiv = document.createElement('div');
eachSpriteDiv.id = sprite;
eachSpriteDiv.setAttribute('class', 'box');

// const name = document.createElement('h4');
// name.innerText = `This is sprite ${sprite}`;
// eachSpriteDiv.appendChild(name);
// console.log(name);
if (sprite) {
const eachSpriteDiv = document.createElement('div');
eachSpriteDiv.id = sprite;
eachSpriteDiv.setAttribute('class', 'box');
const picture = document.createElement('IMG');
picture.src = sprites[sprite];
eachSpriteDiv.appendChild(picture);

const picture = document.createElement('IMG');
picture.src = sprites[sprite];
eachSpriteDiv.appendChild(picture);
div.appendChild(eachSpriteDiv);

div.appendChild(eachSpriteDiv);
mySpriteSpot.appendChild(div);

mySpriteSpot.appendChild(div);

console.log('Name is' + name + 'sprite is' + sprites[sprite]);
console.log('Name is' + name + 'sprite is' + sprites[sprite]);
}
}
11 changes: 0 additions & 11 deletions Week2/homework/squirtle-sprites.js

This file was deleted.

53 changes: 50 additions & 3 deletions Week2/lecture-exercises.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,56 @@ async function getRandomAdvice() {
return adviceData.slip.advice;
}

let allAdvice = [];
const adviceEl = document.getElementById('advice');

function updateDOM() {
adviceEl.innerHTML = '';
allAdvice.forEach(advice => {
const adviceItem = document.createElement('li');
adviceEl.appendChild(adviceItem);
adviceItem.innerText = advice;

const removeButton = document.createElement('button');
removeButton.innerText = 'X';
adviceItem.appendChild(removeButton);

removeButton.addEventListener('click', () => deleteAdvice(index));
});
}

function deleteAdvice(index) {
allAdvice.splice(index, 1);
updateDOM();
}
/* function deleteAdvice {
let howMuchAdvice = allAdvice.length
if (howMuchAdvice > 10) {
allAdvice.splice(0, 1);
updateDOM();
}
else {
console.log("looks fine");
}
} */

async function setRandomAdvice() {
const adviceEl = document.getElementById('advice');
adviceEl.innerText = await getRandomAdvice();
allAdvice.push(await getRandomAdvice());
updateDOM();
}

setRandomAdvice();
function upcaseAllAdvice() {
allAdvice = allAdvice.map(advice => advice.toUpperCase());
updateDOM();
}

function lowcaseAllAdvice() {
allAdvice = allAdvice.map(advice => advice.toLowerCase());
updateDOM();
}

document.getElementById('add-advice').addEventListener('click', setRandomAdvice);

document.getElementById('upcase-everything').addEventListener('click', lowcaseAllAdvice);

document.getElementById('upcase-everything').addEventListener('click', upcaseAllAdvice);
4 changes: 1 addition & 3 deletions Week3/homework/step2-1.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
'use strict';

function foo(func) {
// What to do here?
// Replace this comment and the next line with your code
console.log(func);
func();
}

function bar() {
Expand Down
42 changes: 28 additions & 14 deletions Week3/homework/step2-2.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,39 @@
'use strict';

function threeFive(startIndex, stopIndex, threeCallback, fiveCallback) {
function makeNumbers {
function sayThree() {
return 'It is three';
}

function sayFive() {
return 'It is five';
}

function threeFive(startIndex, stopIndex, threeCallback = sayThree, fiveCallback = sayFive) {
function makeNumbers(startNum, endNum) {
const numbers = [];
for (let i = startIndex; i <= stopIndex; i++) {
for (let i = startNum; i <= endNum; i++) {
numbers.push(i);
}
return numbers;
}
const numberArr = makeNumbers(startIndex, stopIndex);

function sayThree(number) {
const isThree = (numbers = > (number % 3 == 0 ? threeCallback : number))
return isThree

//}

function sayFive(number) {
// Replace this comment and the next line with your code
console.log(number);
}
return numberArr.map(eachNum => {
if (eachNum % 3 === 0 && eachNum % 5 === 0) {
return threeCallback(eachNum) + fiveCallback(eachNum);
}
if (eachNum % 3 === 0) {
return threeCallback(eachNum);
}
if (eachNum % 5 === 0) {
return fiveCallback(eachNum);
}
return eachNum;
});
}
//threeFive(10, 15, sayThree, sayFive);

threeFive(1, 15, sayThree, sayFive);
threeFive(10, 15, sayThree, sayFive);

// Do not change or remove anything below this line
module.exports = threeFive;
29 changes: 19 additions & 10 deletions Week3/homework/step2-3.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,44 +2,53 @@

// Use a 'for' loop
function repeatStringNumTimesWithFor(str, num) {
console.log('repeatStringNumTimesWithFor');
// eslint-disable-next-line prefer-const
let result = '';

// Replace this comment and the next line with your code
for (let i = 0; i < num; i++) {
result += str;
}
console.log(str, num, result);

return result;
}

console.log('for', repeatStringNumTimesWithFor('abc', 3));

// Use a 'while' loop
function repeatStringNumTimesWithWhile(str, num) {
console.log('repeatStringNumTimesWithWhile');
// eslint-disable-next-line prefer-const
let result = '';

let i = 0;
while (i < num) {
result += str;
i++;
}
// Replace this comment and the next line with your code
console.log(str, num, result);

return result;
}

console.log('while', repeatStringNumTimesWithWhile('abc', 3));

// Use a 'do...while' loop
function repeatStringNumTimesWithDoWhile(str, num) {
console.log('repeatStringNumTimesWithDoWhile');
// eslint-disable-next-line prefer-const
if (num <= 0) return '';
let result = '';
let i = 0;
do {
result += str;
i++;
} while (i < num);

// Replace this comment and the next line with your code
console.log(str, num, result);
console.log(`string is ${str} number is ${num} result is ${result})`);

return result;
}

console.log('do-while', repeatStringNumTimesWithDoWhile('abc', 3));
// Do not change or remove anything below this line//

// Do not change or remove anything below this line
module.exports = {
repeatStringNumTimesWithFor,
repeatStringNumTimesWithWhile,
Expand Down
4 changes: 3 additions & 1 deletion Week3/homework/step2-4.js
A716
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
'use strict';

function Dog() {
// add your code here
this.name = 'Dawg';
this.color = 'Dog colored';
this.numLegs = 3;
}

const hound = new Dog();
Expand Down
8 changes: 5 additions & 3 deletions Week3/homework/step2-5.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
function multiplyAll(arr) {
// eslint-disable-next-line
let product = 1;

// Replace this comment and the next line with your code
console.log(arr, product);
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr[i].length; j++) {
product = product * arr[i][j];
}
}

return product;
}
Expand Down
Loading
0