Practice
JavaScript
Data Structures
React
Concepts
Search problems…
⌘K
Sign in
JavaScript
0 of 240 solved
0%
x
Difficulty
all
▼
Status
all
▼
Fundamentals: Part 1
0/15
○
Refined Type Of
easy
○
Even or Odd
easy
○
Parse Number or Null
easy
○
Coerce to Boolean
easy
○
Safe Integer Check
medium
○
Default if Nullish
medium
○
Count Truthy Values
medium
○
Swap Two Values
medium
○
Clamp a Number
easy
○
Sign of a Number
easy
○
Nullish Coalescing
easy
○
Optional Chaining Lookup
medium
○
Wrap an Index
medium
○
Integer Average
medium
○
Toggle All Booleans
medium
Fundamentals: Part 2
0/12
○
Multiply (Function Declaration)
easy
○
Square (Arrow Function)
easy
○
Functions Calling Functions
easy
○
Add to Both Ends
easy
○
Find Position
easy
○
Read a Property
easy
○
Object Method with this
medium
○
Sum with a for Loop
easy
○
Collect Evens (continue)
medium
○
Loop Backwards
easy
○
Nested Loops: Index Pairs
medium
○
Countdown with while
easy
Behind the Scenes
0/6
○
Scope Chain Access
easy
○
Hoisting: Call Before Declaration
easy
○
this in a Method
medium
○
Objects Are Passed by Reference
medium
○
Primitives Are Copied
medium
○
Shallow Copy with Spread
medium
Data Structures, Operators & Strings
0/43
○
Reverse a String
easy
○
Count Vowels
easy
○
Is Palindrome
medium
○
Count Object Keys
easy
○
Invert an Object
medium
○
Destructure and Swap
easy
○
Merge Objects with Spread
medium
○
Count Vowels
easy
○
Title Case
easy
○
Palindrome Check
easy
○
Count a Character
medium
○
First Unique Character
medium
○
Truncate with Ellipsis
medium
○
Word Count
medium
○
Longest Common Prefix
hard
○
Count Keys
easy
○
Sum of Values
easy
○
Invert Keys and Values
easy
○
Merge Two Objects
medium
○
Pick Keys
medium
○
Deep Clone
medium
○
Group By Property
medium
○
Frequency Map
medium
○
Flatten Nested Object
hard
○
Head and Tail
easy
○
Default and Rest Parameters
easy
○
Template Literal Format
easy
○
Merge Unique with Spread
medium
○
Computed Property Key
medium
○
Destructure with Defaults
medium
○
Nested Destructuring
medium
○
Pairs to Object
hard
○
Destructure an Array
easy
○
Destructure with Rename
easy
○
Combine Arrays with Spread
easy
○
Split First and Rest
medium
○
Short-Circuit Default (||)
easy
○
Nullish Default (??)
easy
○
Optional Chaining
easy
○
Unique Values with a Set
easy
○
Count Unique (Set size)
easy
○
Build and Read a Map
medium
○
Flatten a Nested Object
hard
A Closer Look at Functions
0/48
○
Default Parameter Greeting
easy
○
Counter via Closure
medium
○
Multiplier via Closure
medium
○
Apply a Function N Times
easy
○
Pipeline of Transformations
medium
○
Factorial
easy
○
Flatten Nested Array
medium
○
Permutations of a String
hard
○
Sum All Arguments
easy
○
Default Parameter Greeting
easy
○
Max of Arguments
easy
○
Concatenate Arrays via Spread
medium
○
Countdown
medium
○
Increment N Times
medium
○
Sum of Even Arguments
medium
○
Factorial with a Loop
hard
○
Counter Sequence
medium
○
Running Totals
medium
○
Memoized Squares
medium
○
Once Guard
medium
○
Private Bank Balance
hard
○
Multiplier Factory
medium
○
Apply Named Operation
medium
○
Step Pipeline
medium
○
Filter by Predicate Name
medium
○
Tally with Reduce
medium
○
Squares of Even Numbers
medium
○
Custom Reduce
hard
○
Sum to N
easy
○
Power
easy
○
Reverse a String Recursively
medium
○
Countdown Recursively
medium
○
Deep Flatten
medium
○
Tower of Hanoi Moves
hard
○
Borrow a Method with call
medium
○
apply with an Arguments Array
medium
○
Fix an Argument with bind
medium
○
Immediately Invoked Function
easy
○
Function Returning a Function
medium
○
Partial Application
medium
○
Implement curry()
hard
○
Implement memoize()
hard
○
Implement pipe()
hard
○
Generate All Permutations
hard
○
Temperature Conversion Module
easy
○
Compose Functions
medium
○
Memoize a Function
hard
○
Run Once
medium
Working With Arrays
0/32
○
Sum of an Array
easy
○
Find the Maximum
easy
○
Remove Duplicates
medium
○
Double Every Element
easy
○
Filter Even Numbers
easy
○
Group By Length
medium
○
Find Maximum
easy
○
Remove Duplicates
easy
○
Chunk an Array
easy
○
Rotate Array Right
medium
○
Flatten One Level
medium
○
Array Intersection
medium
○
Move Zeros to End
medium
○
Maximum Subarray Sum
hard
○
Double Each
easy
○
Keep Positives
easy
○
Sum with Reduce
easy
○
Average
medium
○
Count Above Threshold
medium
○
Index of Maximum
medium
○
Partition
medium
○
Sum of Nested Arrays
medium
○
Map to Lengths
medium
○
Most Frequent Element
hard
○
Last Element with at
easy
○
find First Over Threshold
easy
○
findLast Even
easy
○
some and every
medium
○
flat One Level
easy
○
flatMap to Duplicate
medium
○
Sort Numbers Ascending
medium
○
Array.from with Map
medium
Numbers, Dates & Timers
0/12
○
Convert String to Number
easy
○
Is Whole Number
easy
○
Round to Decimals
medium
○
Floor, Ceil, Trunc
medium
○
Even or Odd (Remainder)
easy
○
Every Nth Element
medium
○
Money String
easy
○
BigInt Sum
medium
○
Days Between Dates
medium
○
Day of Week
medium
○
Add Days
medium
○
Clamp a Number
easy
DOM & Events
0/10
○
Append a List Item
easy
○
Toggle a CSS Class
medium
○
Set Text Content
easy
○
Add a CSS Class
easy
○
Append Three List Items
medium
○
Reveal a Hidden Message
easy
○
Set a Data Attribute
medium
○
Set an Input Value
easy
○
Remove an Element
medium
○
Style an Element
medium
Object-Oriented Programming
0/24
○
Rectangle Area
easy
○
Counter Class
easy
○
Stack Class
medium
○
Shape Inheritance
medium
○
Static Method
medium
○
Getter Property
medium
○
Prototype Method
medium
○
Temperature Converter
hard
○
Constructor Function
medium
○
Prototype Method
medium
○
Getter
medium
○
Static Method
medium
○
Class Inheritance
medium
○
Private Class Field
hard
○
Object.create
medium
○
Method Chaining
medium
○
Build an EventEmitter
hard
○
Event Emitter
medium
○
Shopping Cart
medium
○
Bank Account
easy
○
Todo List
easy
○
Chainable Calculator
easy
○
Traffic Light State Machine
easy
○
Simple Router
medium
Asynchronous JavaScript
0/19
○
Async Identity
easy
○
Async Double
easy
○
Await a Promise
medium
○
Promise.all Sum
medium
○
Chained Then
medium
○
Double All Async
medium
○
Catch a Rejection
medium
○
Await with Default
medium
○
Sequential Accumulate
medium
○
Async Step Pipeline
hard
○
Safe JSON Parse
easy
○
Safe Divide
easy
○
Default on Out-of-Range
medium
○
Validate with Thrown Errors
medium
○
Try, Catch, Finally Order
medium
○
Promise.all (Parallel)
medium
○
Promise.allSettled Statuses
hard
○
Await in Sequence
medium
○
Async try/catch Fallback
medium
Modern JavaScript
0/6
○
Pure Function (no mutation)
easy
○
Immutable State Update
medium
○
Declarative Sum
easy
○
Declarative Filter then Map
medium
○
Curried Add
medium
○
Module Pattern (IIFE)
medium
Beyond the Course (extra topics)
0/13
○
Range Generator
easy
○
Fibonacci Generator
medium
○
Take Evens from an Infinite Generator
medium
○
Collect from a Start
medium
○
Chunk Generator
hard
○
Contains a Digit
easy
○
Extract Number Groups
easy
○
Simple Email Check
easy
○
Collapse Whitespace
medium
○
Count Words with Regex
medium
○
Mask Digits
medium
○
Reformat a Date
hard
○
Implement JSON.stringify (subset)
hard