diff --git a/assignments/array-methods.js b/assignments/array-methods.js index f3862361e..78a8c1b7a 100644 --- a/assignments/array-methods.js +++ b/assignments/array-methods.js @@ -59,20 +59,34 @@ const runners = [ // 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 = []; console.log(fullNames); +runners.forEach(function(items){ return fullNames.push(`${items.first_name} ${items.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 = []; console.log(firstNamesAllCaps); +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 = []; + +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; +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 cb72e70c9..84c37f14d 100644 --- a/assignments/callbacks.js +++ b/assignments/callbacks.js @@ -33,7 +33,7 @@ const items = ['Pencil', 'Notebook', 'yo-yo', 'Gum']; function logExorbitantPrice(article) { return `this ${article} is worth a million dollars!`; }; - + const test2 = firstItem(items, logExorbitantPrice); console.log(test2); // "this Pencil is worth a million dollars!" */ @@ -41,23 +41,39 @@ const items = ['Pencil', 'Notebook', 'yo-yo', 'Gum']; function getLength(arr, cb) { // getLength passes the length of the array into the callback. + // let cb = arr.length + return cb(arr.length); } + function test1(items, getLength) { + console.log(test1) + } + + getLength(items, length => `the length of this array is ${length}`); function last(arr, cb) { // last passes the last item of the array into the callback. + return cb(arr.length-1) } function sumNums(x, y, cb) { // sumNums adds two numbers (x, y) and passes the result to the callback. + return cb(x + y) } function multiplyNums(x, y, cb) { // multiplyNums multiplies two numbers and passes the result to the callback. + return cb(x * y) } 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. + for (i = 0; i < list.length; i++) { + if (list[i] === item ) { + return cb(true) + } else { + return cb(false)} + } } /* STRETCH PROBLEM */ diff --git a/assignments/closure.js b/assignments/closure.js index 4b399c098..198257ed5 100644 --- a/assignments/closure.js +++ b/assignments/closure.js @@ -3,8 +3,14 @@ // Keep it simple! Remember a closure is just a function // that manipulates variables defined in the outer scope. // The outer scope can be a parent function, or the top level of the script. - - + function init(){ +let name = "Yannick"; + function displayName(){ + console.log(name) + } + displayName(); + } + init(); /* STRETCH PROBLEMS, Do not attempt until you have completed all previous tasks for today's project files */