Create a unique array using Set() in JavaScript.
thinkThroo
Posted on October 18, 2024
In this article, we analyze how you can create a unique array using new set in JavaScript, inspired by a code reference from TypeDoc.
Let’s first understand this unique function in the above image with an example and then we will look at how this is used in TypeDoc source code.
unique function
export function unique<T>(arr: Iterable<T> | undefined): T[] {
return Array.from(new Set(arr));
}
This function is picked from typedoc/src/lib/utils/array.ts.
Array.from static method creates a new, shallow-copied Array
instance from an iterable or array-like object.
Array.from()
lets you create Array
s from:
iterable objects (objects such as
Map
andSet
); or, if the object is not iterable,array-like objects (objects with a
length
property and indexed elements).
If you were to run this below code in your browser’s console, you will quickly realise that Set removes duplicate values.
new Set([1,2,3,1,2,5,4,3,])
// result: Set(5) {1, 2, 3, 5, 4}
Combining these two concepts, you can now create a unique array using new Set(), simple and easy.
How TypeDoc uses unique function
TypeDoc imports unique function into lib/application.ts at L366.
There is a similar approach suggestion in this Stackoverflow answer.
const unique = (list) => {
return [...new Set(list)];
}
This is picked from Stackoverflow and uses spread operator instead of Array.from method.
About us:
At Think Throo, we are on a mission to teach the advanced codebase architectural concepts used in open-source projects.
10x your coding skills by practising advanced architectural concepts in Next.js/React, learn the best practices and build production-grade projects.
We are open source — https://github.com/thinkthroo/thinkthroo (Do give us a star!)
We also provide web development and technical writing services. Reach out to us at hello@thinkthroo.com to learn more!
References:
Posted on October 18, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.