Skip to content

Latest commit

 

History

History
90 lines (62 loc) · 2.18 KB

README.md

File metadata and controls

90 lines (62 loc) · 2.18 KB

MY MAP FILTER REDUCE

OVERVIEW

My Map Filter Reduce is a micro-project that includes my own implementation's of JavaScript's Array.prototype.map(), Array.prototype.filter(), Array.prototype.reduce(). Tests are provided via Jest.

PROJECT STACK 🏢

I used JavaScript Playground to scaffold the project. JavaScript playground includes the following technologies:

  • HTML5
  • CSS3 via SCSS
  • ES6+ via Babel
  • Module Bundling via Webpack
  • Live Reload via Webpack Dev Server
  • Formatting via Prettier
  • Linting via ESLint
  • Type Checking via Flow
  • Unit Testing via Jest

I added no additional dependencies to My Map Filter Reduce.

SETUP INSTRUCTIONS 👇

Step 1: Clone the Repo
git clone [email protected]:georgebullock/my-map-filter-reduce.git
Step 2: Install Dependencies
yarn install
Step 3: Start the Project
yarn start
Step 4: Run the Test Suite
npm run t

⚠️ Warning: The project requires node v12.6.0.

💡 Tip: If you're using nvm, you can run nvm use to automatically switch to v12.6.0.

💡 Tip: Check out the scripts object (inside the package.json) for additional commands.

ADDITIONAL INFORMATION

Project Motivation:

I was motivated to do this project for four reasons:

  1. I recently created JavaScript Playground and wanted to test it out with a small project.
  2. I was interview prepping and I read that writing implementations of commonly used methods is a common code challenge.
  3. Despite being comfortable with Array.map() and Array.filter() - I never really understood how Array.reduce() worked until I wrote it myself and then used my implementation to mimic Array.map() and Array.filter().
  4. I'm interested in functional programming and this project was a good exercise in writing higher-order functions.

Project Status:

The project is finished.

Project Roadmap:

No additional features planned.

Known Issues:

None that I'm aware of. If you you find something, please create an issue or send me a pull request.