From c4ba93f95f84c1647cef1eb4cc363c6b7a13e551 Mon Sep 17 00:00:00 2001 From: Sarah Elias Date: Tue, 15 Oct 2019 13:32:54 -0700 Subject: [PATCH 1/2] working on callbacks --- assignments/callbacks.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/assignments/callbacks.js b/assignments/callbacks.js index cb72e70c9..4befb5fa6 100644 --- a/assignments/callbacks.js +++ b/assignments/callbacks.js @@ -41,11 +41,19 @@ const items = ['Pencil', 'Notebook', 'yo-yo', 'Gum']; function getLength(arr, cb) { // getLength passes the length of the array into the callback. + return cb(arr.length); } + getLength(items, (length) => { + console.log(length); + }); function last(arr, cb) { // last passes the last item of the array into the callback. + return cb(arr.slice(arr.length -1)); } + last(items, (tail) => { + console.log(tail); + }); function sumNums(x, y, cb) { // sumNums adds two numbers (x, y) and passes the result to the callback. From 2bcc73cbfb221f920734006ed08fbb4bd6a8d971 Mon Sep 17 00:00:00 2001 From: Sarah Elias Date: Tue, 15 Oct 2019 14:50:06 -0700 Subject: [PATCH 2/2] closure --- assignments/array-methods.js | 15 ++++++++++++--- assignments/callbacks.js | 13 ++++++++++++- assignments/closure.js | 16 ++++++++++++++++ 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/assignments/array-methods.js b/assignments/array-methods.js index f3862361e..2b688e924 100644 --- a/assignments/array-methods.js +++ b/assignments/array-methods.js @@ -58,21 +58,30 @@ const runners = [ // ==== Challenge 1: Use .forEach() ==== // The event director needs both the first and last names of each runner for their running bibs. Combine both the first and last names and populate a new array called `fullNames`. This array will contain just strings. let fullNames = []; +runners.forEach(function(currentValue){ + return fullNames.push(`${currentValue.first_name} ${currentValue.last_name}`); +}); console.log(fullNames); // ==== Challenge 2: Use .map() ==== // The event director needs to have all the runners' first names in uppercase because the director BECAME DRUNK WITH POWER. Populate an array called `firstNamesAllCaps`. This array will contain just strings. -let firstNamesAllCaps = []; +let firstNamesAllCaps = runners.map(function(currentValue){ + return currentValue.first_name.toUpperCase(); +}) console.log(firstNamesAllCaps); // ==== Challenge 3: Use .filter() ==== // The large shirts won't be available for the event due to an ordering issue. We need a filtered version of the runners array, containing only those runners with large sized shirts so they can choose a different size. This will be an array of objects. -let runnersLargeSizeShirt = []; +let runnersLargeSizeShirt = runners.filter(function(currentValue){ + return currentValue.shirt_size === "L" ; +}) console.log(runnersLargeSizeShirt); // ==== Challenge 4: Use .reduce() ==== // The donations need to be tallied up and reported for tax purposes. Add up all the donations and save the total into a ticketPriceTotal variable. -let ticketPriceTotal = 0; +let ticketPriceTotal = runners.reduce(function(accumulator, currentValue){ + return accumulator + currentValue.donation; +}, 0); console.log(ticketPriceTotal); // ==== Challenge 5: Be Creative ==== diff --git a/assignments/callbacks.js b/assignments/callbacks.js index 4befb5fa6..178095dab 100644 --- a/assignments/callbacks.js +++ b/assignments/callbacks.js @@ -57,16 +57,27 @@ function last(arr, cb) { function sumNums(x, y, cb) { // sumNums adds two numbers (x, y) and passes the result to the callback. + return cb(x,y); } +const add = (x,y) =>{ + return x + y; +} +console.log(sumNums(2, 9, add)); + function multiplyNums(x, y, cb) { // multiplyNums multiplies two numbers and passes the result to the callback. + return cb(x,y); +} +const product = (x,y) => { + return x * y; } +console.log(multiplyNums(5, 8, product)); function contains(item, list, cb) { // contains checks if an item is present inside of the given array/list. // Pass true to the callback if it is, otherwise pass false. -} + /* STRETCH PROBLEM */ diff --git a/assignments/closure.js b/assignments/closure.js index 4b399c098..7baca0537 100644 --- a/assignments/closure.js +++ b/assignments/closure.js @@ -4,6 +4,22 @@ // that manipulates variables defined in the outer scope. // The outer scope can be a parent function, or the top level of the script. +function solarSystem(galaxy) { + console.log(`The ${galaxy} is where our planetary system is located.`); + debugger; + function planet(planetName) { + const continent = 'North America' + console.log(`We live on ${planetName} which is the third planet from the Sun.`); + debugger; + function country(countryName) { + console.log(`I live in the ${countryName} found in ${continent}.`); + debugger; + }//This closes country + country('United States'); + }//this closes planet + planet('Earth'); +}//this closes solarsystem +solarSystem('Milky Way'); /* STRETCH PROBLEMS, Do not attempt until you have completed all previous tasks for today's project files */