Introduction
JavaScript utility libraries are essential tools that help developers perform common tasks more efficiently, reduce boilerplate code, and improve code readability. These libraries offer a wide range of utility functions for tasks such as array manipulation, object handling, data transformation, and more. This cheatsheet provides a quick reference to some of the most popular JavaScript utility libraries and their key features.
1. Lodash
Lodash is one of the most popular JavaScript utility libraries, offering a wide range of functions for common programming tasks such as working with arrays, objects, and strings.
<table> <tr> <th>Function</th> <th>Description</th> <th>Example</th> </tr> <tr> <td><code>_.chunk(array, size)Splits an array into groups of the specified size. _.chunk(['a', 'b', 'c', 'd'], 2)=>[['a', 'b'], ['c', 'd']]_.debounce(func, wait)Creates a debounced function that delays invoking the provided function until after the specified wait time. _.debounce(() => console.log('Hello'), 1000)_.cloneDeep(value)Creates a deep clone of the provided value. _.cloneDeep({ a: 1, b: { c: 2 } })=>{ a: 1, b: { c: 2 } }_.merge(object, sources)Merges two or more objects into one, combining their properties. _.merge({ a: 1 }, { b: 2 })=>{ a: 1, b: 2 }_.uniq(array)Creates a duplicate-free version of an array. _.uniq([1, 2, 2, 3, 4, 4])=>[1, 2, 3, 4]
2. Underscore.js
Underscore.js is a lightweight utility library similar to Lodash, providing useful functions for working with arrays, objects, and other data types.
<table> <tr> <th>Function</th> <th>Description</th> <th>Example</th> </tr> <tr> <td><code>_.each(list, iteratee)Iterates over a list, invoking the iteratee for each element. _.each([1, 2, 3], alert)_.map(list, iteratee)Creates a new array by applying the iteratee to each element in the list. _.map([1, 2, 3], num => num * 3)=>[3, 6, 9]_.reduce(list, iteratee, memo)Reduces a list to a single value by iterating and combining elements. _.reduce([1, 2, 3], (sum, num) => sum + num, 0)=>6_.filter(list, predicate)Returns an array of elements that pass a truth test. _.filter([1, 2, 3, 4], num => num % 2 == 0)=>[2, 4]_.findWhere(list, properties)Returns the first element that matches the specified properties. _.findWhere([{a: 1}, {a: 2}], {a: 2})=>{a: 2}
3. Moment.js
Moment.js is a popular library for parsing, validating, manipulating, and formatting dates in JavaScript.
<table> <tr> <th>Function</th> <th>Description</th> <th>Example</th> </tr> <tr> <td><code>moment().format(formatString)Formats a date as a string according to the specified format. moment().format('MMMM Do YYYY, h:mm:ss a')=>September 20th 2024, 3:45:07 pmmoment().add(number, unit)Adds a specified amount of time to a date. moment().add(7, 'days')=>Moment object 7 days in the futuremoment().subtract(number, unit)Subtracts a specified amount of time from a date. moment().subtract(1, 'year')=>Moment object 1 year agomoment().fromNow()Displays the time from now in a human-readable format. moment('2020-01-01').fromNow()=>3 years agomoment().diff(moment, unit)Calculates the difference between two dates. moment().diff(moment('2000-01-01'), 'years')=>24
4. Ramda
Ramda is a functional programming library for JavaScript developers, designed for better code composition and function handling.
<table> <tr> <th>Function</th> <th>Description</th> <th>Example</th> </tr> <tr> <td><code>R.compose(...functions)Composes functions from right to left. R.compose(Math.abs, R.add(1))(-5)=>4R.curry(fn)Returns a curried version of the provided function. R.curry((a, b) => a + b)(1)(2)=>3R.filter(predicate, list)Returns a new list containing only the elements that satisfy the predicate. R.filter(x => x % 2 === 0, [1, 2, 3, 4])=>[2, 4]R.map(fn, list)Applies the function to each element of the list. R.map(x => x * 2, [1, 2, 3])=>[2, 4, 6]R.reduce(reducer, initialValue, list)Reduces the list to a single value using the reducer function. R.reduce(R.add, 0, [1, 2, 3])=>6
5. Date-fns
Date-fns is a modern JavaScript date utility library that provides over 200 functions for manipulating dates without modifying native JavaScript objects.
<table> <tr> <th>Function</th> <th>Description</th> <th>Example</th> </tr> <tr> <td><code>format(date, formatString)Formats the date according to the provided format string. format(new Date(), 'MMMM do, yyyy')=>'September 20th, 2024'addDays(date, amount)Returns a new date with the specified number of days added. addDays(new Date(), 10)=>Date object 10 days in the futuredifferenceInDays(dateLeft, dateRight)Returns the number of days between two dates. differenceInDays(new Date('2024-09-20'), new Date('2024-09-10'))=>10isBefore(date, dateToCompare)Checks if the first date is before the second one. isBefore(new Date('2024-09-10'), new Date('2024-09-20'))=>trueparse(dateString, formatString, referenceDate)Parses a date string according to the provided format string. parse('20th September 2024', 'do MMMM yyyy', new Date())=>Date object for 20th September 2024
Conclusion
This cheatsheet covers some of the most popular JavaScript utility libraries, providing a quick reference to key functions and their usage. These libraries help streamline your development process, reduce code duplication, and enhance the functionality of your JavaScript applications.
Discussion 0
Please sign in to join the discussion.
No comments yet. Start the discussion!