An open API service indexing awesome lists of open source software.

https://github.com/nas5w/roll-your-own

Learn built-in JavaScript methods by rolling your own!
https://github.com/nas5w/roll-your-own

es6 javascript

Last synced: 4 months ago
JSON representation

Learn built-in JavaScript methods by rolling your own!

Awesome Lists containing this project

README

          


Roll Your Own JavaScript

Learning JavaScript by recreating it

---

[![Build Status](https://travis-ci.com/nas5w/roll-your-own.svg?branch=master)](https://travis-ci.com/nas5w/roll-your-own)

This repository is purely educational exploration of recreating built-in JavaScript methods. I started with a number of Array methods, but it would be great to expand to other Object and primitive types as well!

## Methods

- Array Methods
- [concat](./array/concat.js)
- [every](./array/every.js)
- [filter](./array/filter.js)
- [isArray](./array/isArray.js)
- [map](./array/map.js)
- [of](./array/of.js)
- [reduce](./array/reduce.js)
- [some](./array/some.js)
- [toString](./array/toString.js)

## Contributing

Happy to have PRs to the repository proposing new methods or fixes to existing ones! Please open an issue first to get approval for any work you do, I'd hate to reject proposed changes because someone else is already doing the same work.

Here's the general process to follow to contribute:

1. Propose the change/fix in a Github Issue
2. Clone down the repository
3. Create tests for the changes you're making
4. Make the change and pass all tests
5. Create a Pull Request to this repository with the update(s)

Please try not to use known polyfills for the methods you contribute, I'd like this to remain a learning experience rather than a copy/paste exercise!

---

Want to learn more about JavaScript? Consider signing up for my [free newsletter](https://buttondown.email/typeofnan) where I periodically send out digestible bits of JavaScript knowledge!