diff --git a/04week/loop.js b/04week/loop.js index e69de29bb..c6deee023 100644 --- a/04week/loop.js +++ b/04week/loop.js @@ -0,0 +1,61 @@ +'use strict'; + +// Create a new file called loops.js in the /04week folder of your workbook. +// Complete each of the following exercises. +// for loop + +// Use a for loop to console.log each item in the array carsInReverse. +const carsInReverse = ['Ford', 'Chevy', 'Tesla', 'Nissan', 'Toyota']; +for (i = 0; i < carsInReverse.length; i++) { + console.log(carsInReverse[i]); +} + +// Create an object (an array with keys and values) called persons with the following data: +// firstName: "Jane" +// lastName: "Doe" +// birthDate: "Jan 5, 1925" +// gender: "female" +const persons = { + firstName: "Jane", + lastName: "Doe", + birthDate: "Jan 5, 1925", + gender: "female" +}; + +// Use a for...in loop to console.log each key. +for (const keys in persons) { + console.log(Object.keys(persons)); +} + +// Then use a for...in loop and if state to console.log the value associated with the key birthDate. +for (const keys in persons) { + if (keys === 'birthDate') { + console.log(persons[keys]); + } +} + +// Use a while loop to console log numbers 1 to 1000 +let num = 1; +while(num <= 1000) { + console.log(num); + num++; +} + +// Use a do...while loop to console.log the numbers from 1 to 1000. +do { + console.log(num); + num++; +} +while(num <= 1000); + +// When is a for loop better than a while loop? + // A forLoop is better when you know the amount of loops you need to do. When you know the cap. + +// How is the readability of the code affected? + // A while loop can break easier because of the open ended autonomy. The for loop has a set limit which can be easier to control. + +// What is the difference between a for loop and a for...in loop? + // for in loops are used mostly for objects + +// What is the difference between a while loop and a do...while loop? + // A while loop goes until something is the argument is false and a do while goes while the condition is true. diff --git a/06week/higherOrder.js b/06week/higherOrder.js index 73926e3dc..3e25fe612 100644 --- a/06week/higherOrder.js +++ b/06week/higherOrder.js @@ -2,18 +2,55 @@ const assert = require('assert'); -function forEach(arr, callback) { - // Your code here +// Create a forEach() function that takes an array of items and a function that runs the function arr.length number of times. +// +// Create a map() function that takes an array of items and a function that returns an array with each item manipulated by that function. +// +// Create a filter() function that takes an array of items and a function that returns an array with only the items that return true in the function. + +// a functon that takes an array and a function that runs the function arr.length + +const numArray = [2, 4, 6, 8]; + +function forEach(arr) { + for (i = 0; i <= arr.length; i ++){ + console.log(arr[i] + 2); + } } +forEach(numArray); + +// map consists of an array, a function, and a return array. + function map(arr, callback) { - // Your code here + const newArr = []; + arr.forEach((item) => { + newArr.push(callback(item)); + }) + return newArr; +} + +map(numArray, (item)=> item + 2); + +const numTwoArray = [1,2,3,4,5,6,7,8] + +const sortingFunction = (num) => { + if(num > 4) { + return num; + } } function filter(arr, callback) { - // Your code here + const newFilterArr = []; + arr.forEach((num) => { + newFilterArr.push(callback(num)); + }) + return newFilterArr; } +filter (numTwoArray, sortingFunction); + + function some(arr, callback) { // Your code here } diff --git a/package-lock.json b/package-lock.json index 62353c45d..f28cfa5c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,16 +4,6 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "JSONStream": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.8.4.tgz", - "integrity": "sha1-kWV9/m/4V0gwZhMrRhi2Lo9Ih70=", - "dev": true, - "requires": { - "jsonparse": "0.0.5", - "through": "2.3.8" - } - }, "abab": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", @@ -2707,6 +2697,16 @@ "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", "dev": true }, + "JSONStream": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.8.4.tgz", + "integrity": "sha1-kWV9/m/4V0gwZhMrRhi2Lo9Ih70=", + "dev": true, + "requires": { + "jsonparse": "0.0.5", + "through": "2.3.8" + } + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -4367,6 +4367,11 @@ "through": "2.3.8" } }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, "string-to-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-1.1.0.tgz", @@ -4427,11 +4432,6 @@ } } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",