diff --git a/06week/dodgeball/dodgeball.css b/06week/dodgeball/dodgeball.css new file mode 100644 index 000000000..e69de29bb diff --git a/06week/dodgeball/dodgeball.html b/06week/dodgeball/dodgeball.html new file mode 100644 index 000000000..fc2d21be0 --- /dev/null +++ b/06week/dodgeball/dodgeball.html @@ -0,0 +1,30 @@ + + + + + + + Dodge Ball + + + +
+

List Of People

+ +
+ +
+

Dodge Ball Players

+ +
+
+

Blue Team

+ +
+
+

Red Team

+ +
+ + + \ No newline at end of file diff --git a/06week/dodgeball/dodgeball.js b/06week/dodgeball/dodgeball.js new file mode 100644 index 000000000..2a0097445 --- /dev/null +++ b/06week/dodgeball/dodgeball.js @@ -0,0 +1,216 @@ +'use strict'; + +// let assert = require('assert'); + +// changing ids to make an easier call +const arrOfPeople = [ + { + id: 0, + name: "Charles Young", + age: 55, + skillSet: "welding", + placeBorn: "Omaha, Nebraska" + }, + { + id: 1, + name: "Judy Twilight", + age: 35, + skillSet: "fishing", + placeBorn: "Louisville, Kentucky" + }, + { + id: 2, + name: "Cynthia Doolittle", + age: 20, + skillSet: "tic tac toe", + placeBorn: "Pawnee, Texas" + }, + { + id: 3, + name: "John Willouby", + age: 28, + skillSet: "pipe fitting", + placeBorn: "New York, New York" + }, + { + id: 4, + name: "Stan Honest", + age: 20, + skillSet: "boom-a-rang throwing", + placeBorn: "Perth, Australia" + }, + { + id: 5, + name: "Mia Watu", + age: 17, + skillSet: "acrobatics", + placeBorn: "Los Angeles, California" + }, + { + id: 6, + name: "Walter Cole", + age: 32, + skillSet: "jump rope", + placeBorn: "New Orleans, Louisiana" + }, +] + +class Person { + constructor(person) { + this.id = person.id; + this.name = person.name; + this.age = person.age; + this.skillSet = person.skillSet; + this.placeBorn = person.placeBorn; + this.canThrowBall = false + this.canDodgeBall = false + this.hasPaid = false + this.isHealthy = false + this.yearsExperience = false + + this.team = person.team; + this.isPlayer = person.isPlayer; + } +} + +//creating a new instance of each person in the array +const people = arrOfPeople.map(person => new Person(person)); +console.log(people) + +// creating a function that lists the people +const listPeopleChoices = () => { + // attaching to the DOM + const listElement = document.getElementById('people') + // does not allow multiple of the same list + listElement.innerHTML = ''; + // filtering through people who are not already players + // mapping through each person to make a new array of players + people.filter(person => !person.isPlayer).map(person => { + // create new list elements + const li = document.createElement("li") + // create new button elements + const button = document.createElement("button") + // content inside the button + button.innerHTML = "Make Player" + // onclick function that moves from people to player array + button.addEventListener('click', function() {makePlayer(person.id)} ) + // attaching button to list element + li.appendChild(button) + // attaching persons name & skill to the list element + li.appendChild(document.createTextNode(person.name + " - " + person.skillSet)) + // appending list element to the DOM + listElement.append(li) + }) +} + +// creating a function that lists the players +const listPlayerChoices = () => { + // attaching to the DOM + const listElement = document.getElementById('players') + // does not allow multiple of the same list + listElement.innerHTML = ''; + // filtering through players who are not already on a team + // mapping through each person to make a new array of teams + people.filter(person => person.isPlayer && !person.team).map(person => { + // creating a new list element + const li = document.createElement("li") + + // creating a new button element + const buttonRed = document.createElement("button") + // content inside the button + buttonRed.innerHTML = "Make Red" + // onclick function that moves players to red team + buttonRed.addEventListener('click', function() {makeRed(person.id)} ) + // appends it to the list element + li.appendChild(buttonRed) + + // creating a new button element + const buttonBlue = document.createElement("button") + // content inside the button + buttonBlue.innerHTML = "Make Blue" + // onclick function that moves players to the blue team + buttonBlue.addEventListener('click', function() {makeBlue(person.id)} ) + // appends it to the DOM + li.appendChild(buttonBlue) + + // attahcing persons name & skill to the list element + li.appendChild(document.createTextNode(person.name + " - " + person.skillSet)) + // appending the list element to the DOM + listElement.append(li) + }) +} + +const listRedChoices = () => { + const listElement = document.getElementById('red') + listElement.innerHTML = ''; + people.filter(person => person.isPlayer && person.team === 'red').map(person => { + const li = document.createElement("li") + const button = document.createElement("button") + button.innerHTML = "Make Player" + button.addEventListener('click', function() {makePlayer(person.id)} ) + li.appendChild(button) + li.appendChild(document.createTextNode(person.name + " - " + person.skillSet + ' - Team Color: Red - Team Mascot: Lobster')) + listElement.append(li) + }) +} + +const listBlueChoices = () => { + const listElement = document.getElementById('blue') + listElement.innerHTML = ''; + people.filter(person => person.isPlayer && person.team === 'blue').map(person => { + const li = document.createElement("li") + const button = document.createElement("button") + button.innerHTML = "Make Player" + button.addEventListener('click', function() {makePlayer(person.id)} ) + li.appendChild(button) + li.appendChild(document.createTextNode(person.name + " - " + person.skillSet + ' - Team Color: Blue - Team Mascot: Jay')) + listElement.append(li) + }) +} + +// called on a button click and the calls the listPeople function that will display the arrays +const makePlayer = (id) => { + console.log(`li ${id} was clicked!`) + people.find(person => person.id === id).isPlayer = true; + listPeople(); +} + +// called on a button click and the calls the listPeople function that will display the arrays +const makeRed = (id) => { + console.log(`li ${id} was clicked!`) + people.find(person => person.id === id).team = 'red'; + listPeople(); +} + +// called on a button click and the calls the listPeople function that will display the arrays +const makeBlue = (id) => { + console.log(`li ${id} was clicked!`) + people.find(person => person.id === id).team = 'blue'; + listPeople(); +} + +// called on a button click and the calls the listPeople function that will display the arrays +const makePerson = (id) => { + console.log(`li ${id} was clicked!`) + people.find(person => person.id === id).isPlayer = false; + listPeople(); +} + +// master functions that calls all other functions that displays the arrays to the DOM +const listPeople = () => { + listBlueChoices() + listRedChoices() + listPeopleChoices(); + listPlayerChoices(); +} + +if (typeof describe === 'function') { + describe('makePlayer()', () => { + it('should move to player array', () => { + makePlayer(person[0]); + assert.equal(person.isPlayer, true); + }); + }); + }; + + \ No newline at end of file diff --git a/06week/dodgeball/readMe.md b/06week/dodgeball/readMe.md new file mode 100644 index 000000000..889c79708 --- /dev/null +++ b/06week/dodgeball/readMe.md @@ -0,0 +1,24 @@ +- create people + +- create a class that designates that a player: + -canThrowBall + -canDodgeBall + -hasPaid + -isHealthy + -yearsExperience + +- has the ability to push players to an array that is displayed in the DOM + +- each player must have a button that selects either blue or red team + +- when people are pushed to players they are removed from the people list + +- when players are pushed to a team they are removed from the players list + +- players team will designate their mascot and teamcolor + +- use the this keyword attached to the players button that contains an event listener of onclick that depicts which team they will be on + +- once the players are pushed to a team allow the arrays to print to the DOM + +- create 3 additional tests \ No newline at end of file diff --git a/06week/higherOrder.js b/06week/higherOrder.js deleted file mode 100644 index 73926e3dc..000000000 --- a/06week/higherOrder.js +++ /dev/null @@ -1,103 +0,0 @@ -'use strict'; - -const assert = require('assert'); - -function forEach(arr, callback) { - // Your code here -} - -function map(arr, callback) { - // Your code here -} - -function filter(arr, callback) { - // Your code here -} - -function some(arr, callback) { - // Your code here -} - -function every(arr, callback) { - // Your code here -} - -if (typeof describe === 'function') { - - describe('#forEach()', () => { - it('should call the callback the array.length number of times', () => { - let count = 0; - forEach([1, 2, 3], () => { - count++; - }); - assert.equal(count, 3); - }); - }); - - describe('#map()', () => { - const arr = [1, 2, 3]; - const mapped = map(arr, (num) => { - return num * num; - }); - it('should return new array with mapped items', () => { - assert.deepEqual(mapped, [1, 4, 9]); - }); - it('should not affect the original array', () => { - assert.deepEqual(arr, [1, 2, 3]); - }) - }); - - describe('#filter()', () => { - it('should return an array of items that pass the predicate test', () => { - const filtered = filter([1, 2, 3], (num) => { - return num % 2 === 0; - }); - assert.deepEqual(filtered, [2]); - }); - }); - - describe('#some()', () => { - let count = 0; - const somed = some([1, 2, 3, 4], (num) => { - count++; - return num % 2 === 0; - }); - it('should return true if at least one item passes the predicate test', () => { - assert.equal(somed, true); - }); - it('should stop at the first item that passes the predicate test', () => { - assert.equal(count, 2); - }); - it('should return false if no items pass the predicate test', () => { - const somed = some([1, 3, 5], (num) => { - return num % 2 === 0; - }); - assert.equal(somed, false); - }); - }); - - describe('#every()', () => { - it('should return true if at all passes the predicate test', () => { - const everied = every([2, 4, 6], (num) => { - return num % 2 === 0; - }); - assert.equal(everied, true); - }); - let count = 0; - const everied = every([2, 3, 4, 5], (num) => { - count++; - return num % 2 === 0; - }); - it('should return false if any item fails the predicate test', () => { - assert.equal(everied, false); - }); - it('should stop at the first item that fails the predicate test', () => { - assert.equal(count, 2); - }); - }); - -} else { - - console.log('Only run the tests on this one!') - -} diff --git a/06week/sorting.js b/06week/sorting.js new file mode 100644 index 000000000..e92286c1d --- /dev/null +++ b/06week/sorting.js @@ -0,0 +1,108 @@ +const strNums = ["1","4","1","5","9","2","6","5","3","5","8","9","7","9","3","2","3","8","4","6","2","6","4","3","3","8","3","2","7","9","5","0","2","8","8","4","1","9","7","1","6","9","3","9","9","3","7","5","1","0","5","8","2","0","9","7","4","9","4","4","5","9","2","3","0","7","8","1","6","4","0","6","2","8","6","2","0","8","9","9","8","6","2","8","0","3","4","8","2","5","3","4","2","1","1","7","0","6","7","9","8","2","1","4","8","0","8","6","5","1","3","2","8","2","3","0","6","6","4","7","0","9","3","8","4","4","6","0","9","5","5","0","5","8","2","2","3","1","7","2","5","3","5","9","4","0","8","1","2","8","4","8","1","1","1","7","4","5","0","2","8","4","1","0","2","7","0","1","9","3","8","5","2","1","1","0","5","5","5","9","6","4","4","6","2","2","9","4","8","9","5","4","9","3","0","3","8","1","9","6","4","4","2","8","8","1","0","9","7","5","6","6","5","9","3","3","4","4","6","1","2","8","4","7","5","6","4","8","2","3","3","7","8","6","7","8","3","1","6","5","2","7","1","2","0","1","9","0","9","1","4","5","6","4","8","5","6","6","9","2","3","4","6","0","3","4","8","6","1","0","4","5","4","3","2","6","6","4","8","2","1","3","3","9","3","6","0","7","2","6","0","2","4","9","1","4","1","2","7","3","7","2","4","5","8","7","0","0","6","6","0","6","3","1","5","5","8","8","1","7","4","8","8","1","5","2","0","9","2","0","9","6","2","8","2","9","2","5","4","0","9","1","7","1","5","3","6","4","3","6","7","8","9","2","5","9","0","3","6","0","0","1","1","3","3","0","5","3","0","5","4","8","8","2","0","4","6","6","5","2","1","3","8","4","1","4","6","9","5","1","9","4","1","5","1","1","6","0","9","4","3","3","0","5","7","2","7","0","3","6","5","7","5","9","5","9","1","9","5","3","0","9","2","1","8","6","1","1","7","3","8","1","9","3","2","6","1","1","7","9","3","1","0","5","1","1","8","5","4","8","0","7","4","4","6","2","3","7","9","9","6","2","7","4","9","5","6","7","3","5","1","8","8","5","7","5","2","7","2","4","8","9","1","2","2","7","9","3","8","1","8","3","0","1","1","9","4","9","1","2","9","8","3","3","6","7","3","3","6","2","4","4","0","6","5","6","6","4","3","0","8","6","0","2","1","3","9","4","9","4","6","3","9","5","2","2","4","7","3","7","1","9","0","7","0","2","1","7","9","8","6","0","9","4","3","7","0","2","7","7","0","5","3","9","2","1","7","1","7","6","2","9","3","1","7","6","7","5","2","3","8","4","6","7","4","8","1","8","4","6","7","6","6","9","4","0","5","1","3","2","0","0","0","5","6","8","1","2","7","1","4","5","2","6","3","5","6","0","8","2","7","7","8","5","7","7","1","3","4","2","7","5","7","7","8","9","6","0","9","1","7","3","6","3","7","1","7","8","7","2","1","4","6","8","4","4","0","9","0","1","2","2","4","9","5","3","4","3","0","1","4","6","5","4","9","5","8","5","3","7","1","0","5","0","7","9","2","2","7","9","6","8","9","2","5","8","9","2","3","5","4","2","0","1","9","9","5","6","1","1","2","1","2","9","0","2","1","9","6","0","8","6","4","0","3","4","4","1","8","1","5","9","8","1","3","6","2","9","7","7","4","7","7","1","3","0","9","9","6","0","5","1","8","7","0","7","2","1","1","3","4","9","9","9","9","9","9","8","3","7","2","9","7","8","0","4","9","9","5","1","0","5","9","7","3","1","7","3","2","8","1","6","0","9","6","3","1","8","5","9","5","0","2","4","4","5","9","4","5","5","3","4","6","9","0","8","3","0","2","6","4","2","5","2","2","3","0","8","2","5","3","3","4","4","6","8","5","0","3","5","2","6","1","9","3","1","1","8","8","1","7","1","0","1","0","0","0","3","1","3","7","8","3","8","7","5","2","8","8","6","5","8","7","5","3","3","2","0","8","3","8","1","4","2","0","6","1","7","1","7","7","6","6","9","1","4","7","3","0","3","5","9","8","2","5","3","4","9","0","4","2","8","7","5","5","4","6","8","7","3","1","1","5","9","5","6","2","8","6","3","8","8","2","3","5","3","7","8","7","5","9","3","7","5","1","9","5","7","7","8","1","8","5","7","7","8","0","5","3","2","1","7","1","2","2","6","8","0","6","6","1","3","0","0","1","9","2","7","8","7","6","6","1","1","1","9","5","9","0","9","2","1","6","4","2","0","1","9","8","9"]; + +// Given 1000 digits of PI as strings, return an array of the digits as numbers +const stringsToNumbs = (numbers) => { + return numbers.map(Number); +} +// console.log(stringsToNumbs(strNums)); ----------------------------------------------- +let newArr1 = stringsToNumbs(strNums) + +// With the same numbers, find the sum of the even values +const sumEvens = (evens) => { + newArr = []; + for (let i = 0; i < newArr1.length; i++) { + if (newArr1[i] % 2 == 0) { + newArr.push(newArr1[i]); + } + } + // console.log(newArr); + const reducer = (accumulator, currentValue) => accumulator + currentValue; + console.log(newArr.reduce(reducer)); +} + +// console.log(sumEvens(newArr1)); -------------------------------------------------------- + +// Find the index of the first value when added to it's index = 512 (#ATX!!) +const atxIdx = (atx) => { + for (let i = 0; i < newArr1; i++) { + if (newArr1[i]) + } +} + +console.log(`index: ${atxIdx}, value: ${nums[atxIdx]}`); + +// const weather = [ +// { id: 5743823523151872, +// weather_state_name: "Light Cloud", +// weather_state_abbr: "lc", +// wind_direction_compass: "NNE", +// created: "2018-07-11T20:53:03.251710Z", +// applicable_date: "2018-07-11", +// min_temp: 14.43, +// max_temp: 23.36, +// the_temp: 22.785, +// wind_speed: 5.682503989556987, +// wind_direction: 21.6264939172659, +// air_pressure: 1024.45, +// humidity: 58, +// visibility: 8.683041040324504, +// predictability: 70 +// }, +// { id: 6188149969518592, +// weather_state_name: "Heavy Cloud", +// weather_state_abbr: "hc", +// wind_direction_compass: "NE", +// created: "2018-07-11T20:53:03.268190Z", +// applicable_date: "2018-07-12", +// min_temp: 14.81, +// max_temp: 25.52, +// the_temp: 24.61, +// wind_speed: 3.2461141472739206, +// wind_direction: 42.72552812997726, +// air_pressure: 1024.605, +// humidity: 54, +// visibility: 10.633835898353615, +// predictability: 71 +// }, +// { id: 5742049676492800, +// weather_state_name: "Showers", +// weather_state_abbr: "s", +// wind_direction_compass: "E", +// created: "2018-07-11T20:53:03.947390Z", +// applicable_date: "2018-07-13", +// min_temp: 15.5525, +// max_temp: 25.3475, +// the_temp: 24.175, +// wind_speed: 3.6572546846814604, +// wind_direction: 90.32910675612557, +// air_pressure: 1025.385, +// humidity: 57, +// visibility: 10.181166984808717, +// predictability: 73 +// }, +// { id: 6696130918219776, +// weather_state_name: "Heavy Cloud", +// weather_state_abbr: "hc", +// wind_direction_compass: "SSW", +// created: "2018-07-11T20:53:04.068570Z", +// applicable_date: "2018-07-14", +// min_temp: 15.915, +// max_temp: 27.0925, +// the_temp: 26.585, +// wind_speed: 3.649847972759087, +// wind_direction: 200.04283406736377, +// air_pressure: 1024.4450000000002, +// humidity: 52, +// visibility: 11.14056410562316, +// predictability: 71 +// }, +// ], + +// //using a higher order function, create an array of the unique 'weather_state_name' values of the weather array. Your function should return the following array ['Light Cloud', 'Heavy Cloud', 'Showers'] +// const weatherStates = +// console.log(weatherStates) + +// //find the id of the object in weather that has a min_temp of 15.915 + +// const idealTemp = +// console.log(idealTemp) diff --git a/07week/fetch.html b/07week/fetch.html new file mode 100644 index 000000000..e9c550345 --- /dev/null +++ b/07week/fetch.html @@ -0,0 +1,22 @@ + + + + + + + Fetch Practice + + + + + + + + +
+

All Posts

+ +
+ + + \ No newline at end of file diff --git a/07week/fetch.js b/07week/fetch.js new file mode 100644 index 000000000..6d3f22b0f --- /dev/null +++ b/07week/fetch.js @@ -0,0 +1,26 @@ +let arrayOfPosts; + +window.onload = function() { + getPosts() + +} + +const getPosts = () => { + fetch('http://jsonplaceholder.typicode.com/posts') + .then(res => res.json()) + .then(posts => arrayOfPosts = posts) +} + +const consolePosts = () => { + console.log(arrayOfPosts) +} + +const displayPost = () => { + const allPosts = document.getElementById('all-posts') + arrayOfPosts.map((post, index) => { + const li = document.createElement('li') + const text = document.createTextNode(`#${index}, Title: ${post.title}: ${post.body}, by user: ${post.userId}`) + li.appendChild(text) + allPosts.append(li) + }) +} \ No newline at end of file