The 30 Days of JavaScript challenge by LeetCode is designed to help developers improve their understanding of JavaScript fundamentals, such as:
- Functions & Closures
- Asynchronous JavaScript (Promises, async/await)
- Event Loop & Concurrency
- Object-Oriented Programming
- Array/Object manipulation
- DOM manipulation (where applicable)
Each day presents a new challenge to solve using JavaScript.
| Day | Problem Title | LeetCode URL | Solution | Difficulty |
|---|---|---|---|---|
| 1 | Create Hello World Function | Link | Solution | Easy |
| 2 | Counter | Link | Solution | Easy |
| 3 | Counter II | Link | Solution | Easy |
| 4 | To Be or Not To Be | Link | Solution | Easy |
| 5 | Basic Array Transformations | Link | Solution | Easy |
| 6 | Array Reduce Transformation | Link | Solution | Easy |
| 7 | Array Prototype Last | Link | Solution | Easy |
| 8 | Array Wrapper | Link | Solution | Easy |
| 9 | Group By | Link | Solution | Medium |
| 10 | Join Two Arrays by ID | Link | Solution | Medium |
| 11 | Sleep | Link | Solution | Easy |
| 12 | Promise Time Limit | Link | Solution | Easy |
| 13 | Cache With Time Limit | Link | Solution | Medium |
| 14 | Debounce | Link | Solution | Medium |
| 15 | JSON: Is Object Empty | Link | Solution | Easy |
| 16 | Chunk Array | Link | Solution | Easy |
| 17 | Flatten Deeply Nested Array | Link | Solution | Medium |
| 18 | Compact Object | Link | Solution | Medium |
| 19 | Classes | Link | Solution | Medium |
| 20 | Event Emitter | Link | Solution | Medium |
| 21 | Array Wrapper | Link | Solution | Easy |
| 22 | Calculator with Method Chaining | Link | Solution | Easy |
| 23 | Allow One Function Call | Link | Solution | Easy |
| 24 | Memoize | Link | Solution | Medium |
| 25 | Function Composition | Link | Solution | Easy |
| 26 | Sleep Sort | Link | Solution | Easy |
| 27 | Sort By | Link | Solution | Easy |
| 28 | Snail Traversal | Link | Solution | Medium |
| 29 | Deep Comparison | Link | Solution | Hard |
| 30 | Partial Function | Link | Solution | Medium |
- Clone the repository:
https://github.com/SecurityTalent/30-Days-of-JavaScript-challenges
- JavaScript (ES6+) – All challenges are solved using modern JavaScript syntax.
- Node.js – Used to run and test JavaScript files locally.
- LeetCode – Challenge problems are sourced from LeetCode’s 30 Days of JavaScript Study Plan.
- VS Code / Any Code Editor – For writing and managing code efficiently.
- Git – Version control for tracking changes and collaborating.
- Markdown – For formatting this README file.
- 📘 LeetCode 30 Days of JavaScript Challenge
- 📚 MDN Web Docs – JavaScript
- 📘 JavaScript Info
- 📗 Node.js Documentation
- 📖 ECMAScript 6 Features
- 🧪 Jest (optional) – For unit testing
This project is licensed under the MIT License.
You are free to use, modify, and distribute this project for personal or commercial purposes.
Please give credit by linking back to this repository if you find it helpful.