All practice questions
Solved by ex-interviewers
Test cases
Code in browser
Save the trouble of searching the web for front end interview questions. We have 100+ practice questions in every framework, format, and topic, each with high quality answers and tests from big tech senior / staff engineers.
- Maximum Product in Contiguous ArrayImplement a function to find the subarray which has the largest productLanguages
- Binary Search TreeImplement a binary search tree data structure including essential BST operationsLanguages
- Breadth-first SearchImplement a breadth-first search algorithm that traverses a directed graph in a breadth-first mannerLanguages
- Depth-first SearchImplement a depth-first search algorithm that traverses a directed graph in a depth-first mannerLanguages
- Dijkstra's AlgorithmImplement Dijkstra's algorithm to find the shortest paths from a source vertex in a graph represented as an adjacency list.Languages
- Linked ListImplement a linked list data structure containing the common linked list methodsLanguages
- Array.prototype.squarePremiumImplement a custom Array.prototype.square() method that squares the values in an arrayLanguages
- Backbone ModelPremiumImplement a class resembling Backbone.Model which allows storing of attributes/values and responding to changes in specific attribute valuesLanguages
- Camel Case KeysPremiumImplement a function to convert all the keys in an object to camel caseLanguages
- Cancellable IntervalPremiumImplement a function that acts like setInterval but returns a function to cancel the intervalLanguages
- Cancellable TimeoutPremiumImplement a function that acts like setTimeout but returns a function to cancel the pending callbackLanguages
- ChunkPremiumImplement a function that creates an array of elements split into smaller groups of a specified sizeLanguages
- ClampPremiumImplement a function to clamp a number within the inclusive lower and upper boundsLanguages
- Classnames IIPremiumImplement a function that conditionally joins CSS class names together and also handles de-duplication and function valuesLanguages
- Compact IIPremiumImplement a function that returns an object with all falsey values removedLanguages
- ComposePremiumImplement a function that takes multiple functions as arguments and returns a new function that applies those functions in reverseLanguages
- Count ByImplement a function that counts the number of times a value appears in an array based on a function or property nameLanguages
- Curry IIPremiumImplement a function that transforms a function that takes multiple arguments into a function that can be repeatedly called with any number of argumentsLanguages
- Curry IIIPremiumImplement a function which transforms a function which takes variadic arguments into a function that can be repeatedly called with any number of argumentsLanguages
- CurryImplement a function that transforms a function that takes multiple arguments into a function that can be repeatedly called with only one argument at a timeLanguages
- CycleImplement a function that takes one or more values and returns a function that cycles through those values each time it is calledLanguages
- Data SelectionPremiumImplement a function to filter rows of data matching a specified requirementLanguages
- Debounce IIPremiumImplement a debounce function that comes with a cancel method to cancel delayed invocations and a flush method to immediately invoke themLanguages
- DebounceImplement a function to limit how many times a function can be executed by delaying the execution of the function until after a specified time after its last execution attemptLanguages
- Deep Clone IIPremiumImplement a function that performs a deep copy of a value, but also handles circular referencesLanguages
- Deep OmitImplement a function that removes specified keys and their corresponding values from an object, including nested objects or arraysLanguages
- Drop Right WhilePremiumImplement a function that excludes elements from the end of an array until the predicate returns falseLanguages
- Drop WhilePremiumImplement a function that excludes elements from the beginning of an array until the predicate returns falseLanguages
- Event Emitter IIPremiumImplement a class that can subscribe to and emit events that trigger attached callback functions. Subscription objects are returned and can unsubscribe itselfLanguages
- Event EmitterImplement a class that can subscribe to and emit events that trigger attached callback functionsLanguages
- Find IndexPremiumImplement a function that returns the index of the first element in the array that satisfies the provided testing functionLanguages
- Find Last IndexPremiumImplement a function that returns the index of the last element in the array that satisfies the provided testing functionLanguages
- Function.prototype.applyPremiumImplement the Function.prototype.apply() function that calls the function with a given `this` value and arguments as an arrayLanguages
- Function.prototype.bindPremiumImplement the Function.prototype.bind() function that creates a new function with the `this` keyword set to a provided valueLanguages
- Function.prototype.callImplement the Function.prototype.call() function that calls the function with a given `this` value and provided argumentsLanguages
- Function LengthPremiumImplement a function that returns the number of parameters expected by a functionLanguages
- getElementsByClassNameImplement a function to get all DOM elements that contain the specified classesLanguages
- getElementsByStyleImplement a function to get all DOM elements that are rendered using the specified styleLanguages
- getElementsByTagNameHierarchyPremiumImplement a function to get all DOM elements that match a tag hierarchyLanguages
- GetPremiumImplement a function to safely access deeply-nested properties in JavaScript objectsLanguages
- Group ByPremiumImplement a function that groups values in an array based on a function or property nameLanguages
- HTML SerializerImplement a function to serialize an object into an HTML string with indentationLanguages
- Intersection ByPremiumImplement a function that returns an array of unique values that are included in all given arrays based on a provided iteratee functionLanguages
- Intersection WithPremiumComputes the intersection of arrays using a custom comparator function to determine equality between elementsLanguages
- IntersectionPremiumImplement a function that computes the intersection of arrays, returning a new array containing unique values present in all given arraysLanguages
- Is EmptyPremiumImplement a function to check if a value is an empty object, collection, map, or setLanguages
- jQuery Class ManipulationPremiumImplement a set of jQuery-like functions that manipulates classes on a DOM elementLanguages
- JSON.stringify IIPremiumImplement a function that converts a JavaScript value into a JSON stringLanguages
- LimitPremiumImplement a function that accepts a callback and restricts its invocation to at most N timesLanguages
- Make Counter IIPremiumImplement a function that returns a counter object with methods to retrieve and manipulate the valueLanguages
- Make CounterImplement a function that accepts an integer value and returns a function that can be repeatedly called to return increasing valuesLanguages
- Map Async LimitImplement a function that maps an array of items with an asynchronous mapping function while not exceeding the concurrency limitLanguages
- Map AsyncPremiumImplement a function that maps an array of items with an asynchronous mapping functionLanguages
- Max ByPremiumImplement a function that finds the maximum element based on the specified criteriaLanguages
- Memoize IIPremiumImplement a function that returns a memoized version of a function which accepts any number of argumentsLanguages
- MemoizeImplement a function that returns a memoized version of a function which accepts a single argumentLanguages
- MiddlewaresImplement a function that composes asynchronous middleware functions like in Koa.jsLanguages
- Number of ArgumentsPremiumImplement a function that returns the number of arguments it was called withLanguages
- OncePremiumImplement a function that accepts a callback and restricts its invocation to at most onceLanguages
- Promise.allSettledPremiumImplement the Promise.allSettled() function that resolves to an array of outcomes when all the input elements are either resolved or rejectedLanguages
- Promise.allImplement the Promise.all() function that resolves to an array of results if all the input elements are resolved or rejects otherwiseLanguages
- Promise.anyImplement the Promise.any() function that resolves when any of the input elements are resolvedLanguages
- Promise MergePremiumImplement a function to merge the results of two promises into a single valueLanguages
- Promise.racePremiumImplement the Promise.race() function that resolves or rejects when any of the input elements are resolved or rejectedLanguages
- Promise.rejectPremiumImplement a function to return a Promise object rejected with a reasonLanguages
- Promise TimeoutPremiumImplement a function that resolves a promise if it is fulfilled within a timeout period and rejects otherwiseLanguages
- Promise.withResolversPremiumImplement a function that returns an object containing a new `Promise` object and two functions to resolve or reject itLanguages
- Promisify IIPremiumImplement a promisify function that allows the original function to override the return valueLanguages
- PromisifyImplement a function that takes a function following the common error-first callback style and returns a version that returns promisesLanguages
- Range RightPremiumImplement a function that returns a sequence of numbers in descending orderLanguages
- SingletonPremiumImplement a Singleton class that ensures a class has only one instance while providing a global point of access to that instanceLanguages
- SleepPremiumImplement a function that pauses for a specified duration before resuming executionLanguages
- Squash ObjectImplement a function that returns a new object after squashing the input object into a single level of depthLanguages
- SumPremiumImplement a function that sums numbers by accepting a number and allows for repeated calling with more numbers until it is not called with any numberLanguages
- Table of ContentsPremiumImplement a function to construct a table of contents from an HTML documentLanguages
- Text Search IIPremiumImplement a function to highlight text if searched terms appear within itLanguages
- Text SearchPremiumImplement a function to highlight text if a searched term appears within itLanguages
- ThrottleImplement a function to control the execution of a function by limiting how many times it can execute over timeLanguages
- Type Utilities IIImplement utilities to determine non-primitive variable types in JavaScriptLanguages
- Union ByPremiumImplement a function that creates an array of unique values, in order, from all given arrays.Languages
- TabsBuild a tabs component that displays a list of tab elements and one associated panel of content at a timeLanguages