# JavaScript - II With some basic JavaScript principles we can now expand our skills out even further by exploring array methods like: `.forEach()`, `.map()`, `.reduce()`, and `.filter()`. We can also look at how closures have a large impact on how we write JavaScript. ## Assignment Description * Fork/Clone this repository. * Complete all the exercises as described inside each assignment file. * Use `console.log()` statements to check to see if your code does what it is supposed to do. * To test your `console` statements you can run `node /assignments/` and see what prints in your terminal. You can also use an online tool like `JSBin`, `REPL.it`, `JSFiddle`, or even your `Chrome developer console`. * Once you finish the exercises in each file, commit your code, and push it to your fork. ### Callbacks * In the [callbacks.js](assignments/callbacks.js) file you'll be receiving a lot of practice on how to use callbacks to pass around data. * Write out each function using the `ES5` `function` keyword syntax. * Remember that a callback function is simply a function that is being passed around to other functions. * **Stretch Problem** After you're done with all of the functions, go ahead and re-factor all of them to use `ES6` `Arrow Functions` ### Function Conversion You will see more and more arrow functions as you progress deeper into JavaScript. Use the [function-conversion.js](assignments/function-conversion.js) file as a helper challenge to showcase some of the differences between ES5 and ES6 syntax. ### Array Methods Use `.forEach()`, `.map()`, `.filter()`, and `.reduce()` to loop over an array with 50 objects in it. The [array-methods.js](assignments/array-methods.js) file contains several challenges built around a fund rasising 5k fun run event. * Read the instructions found within the file carefully to finish the challenges. * The last challenge is to come up with 3 problems to solve and then build a solution for them using any of the array methods listed above. * Share one of your favorite problem/solutions in your team meeting. * Complete each challenge presented before moving on to closure. ### Closures The [closure.js](assignments/closure.js) assignment showcases how variables can be used outside of functions to store state using closure. * Complete each challenge.