20 Coding Interview Problems for JavaScript Developers

A curated list of 20 practical coding interview problems covering arrays, strings, hash maps, promises, stacks, and code review with difficulty ratings.

Pairlet TeamPublished: 2026-09-08

Preparing for JavaScript technical interviews requires practicing problems across core data structures and asynchronous runtime mechanics. Here is a curated collection of 20 essential coding interview problems categorized by topic.

Array & Hash Map Problems

1. Two Sum - Difficulty: Easy - Tests: Hash map lookup, O(N) time complexity optimization. - Description: Given an array of integers nums and a target integer target, return indices of the two numbers such that they add up to target. - Practice [Two Sum](https://www.pairlet.dev/problems/two-sum) on Pairlet.

2. Three Sum - Difficulty: Medium - Tests: Two-pointer techniques, sorting, deduplication. - Description: Find all unique triplets in an array that sum up to zero. - Practice [Three Sum](https://www.pairlet.dev/problems/three-sum) on Pairlet.

3. Group By Utility - Difficulty: Easy / Medium - Tests: Array reduction, higher-order functions, object key grouping. - Practice [Group By](https://www.pairlet.dev/problems/group-by) on Pairlet.

String & Stack Problems

4. Valid Parentheses - Difficulty: Easy - Tests: Stack data structures, bracket balance validation. - Description: Determine if a string containing bracket characters (), {}, [] is valid and properly ordered. - Practice [Valid Parentheses](https://www.pairlet.dev/problems/valid-parentheses) on Pairlet.

5. Longest Substring Without Repeating Characters - Difficulty: Medium - Tests: Sliding window technique, Set / Map tracking. - Practice [Longest Substring Without Repeating Characters](https://www.pairlet.dev/problems/longest-substring-without-repeating-characters) on Pairlet.

Async & Control Flow Problems

6. Implement Debounce - Difficulty: Easy / Medium - Tests: Closures, timer management (setTimeout, clearTimeout). - Practice [Implement Debounce](https://www.pairlet.dev/problems/implement-debounce) on Pairlet.

7. Implement Throttle - Difficulty: Medium - Tests: Timestamp tracking, rate limiting. - Practice [Implement Throttle](https://www.pairlet.dev/problems/implement-throttle) on Pairlet.

8. Implement Promise.all - Difficulty: Medium - Tests: Promise constructor, asynchronous coordination. - Practice [Implement Promise.all](https://www.pairlet.dev/problems/implement-promise-all) on Pairlet.

9. Concurrency Limiter - Difficulty: Hard - Tests: Queue management, promise batching. - Practice [Concurrency Limiter](https://www.pairlet.dev/problems/concurrency-limiter) on Pairlet.

Code Review Problems

10. N+1 Query Fix - Difficulty: Medium - Tests: Identifying database N+1 performance anti-patterns. - Practice [N+1 Queries](https://www.pairlet.dev/problems/n-plus-1-queries) on Pairlet.

---

Practice Coding Problems Live Try any of these problems live in a free collaborative interview room with candidates. [Explore All Pairlet Problems](https://www.pairlet.dev/problems).

Frequently Asked Questions

What categories of coding problems should I prepare for JavaScript roles?

Focus on Array & Hash Map manipulation, String parsing, Stack matching, Async Promises/Control Flow, and Code Review bug detection.

Practice Relevant Coding Problems
Practice Live Coding

Conduct Live Coding Interviews with Zero Friction

No candidate sign-up required. Create an instant room, share the link, and code together in real time with shared code execution.

Related Articles