Set?A Set in JavaScript is a built-in object that lets you store unique values of any type.
Unlike arrays, a Set does not allow duplicate entries — each value appears only once.
Think of it like a real-world set of items: no duplicates, no ordering rules, just pure uniqueness.
const mySet = new Set([1, 2, 3, 3]);
console.log(mySet);
// Output: Set(3) { 1, 2, 3 } Even though 3 appears twice, the Set keeps only one instance.
Achieve your career goals, switch to tech and learn software development in Abuja
Using a Set gives you useful advantages:
Perfect when you need distinct values (e.g., unique users, tags, IDs).
Checking if a value exists is O(1) in a Set, while arrays take O(n).
One line of code!
const uniqueArray = [...new Set([1,1,2,3,3])];
// [1, 2, 3] Union, intersection, difference — very easy to implement.
const s = new Set(); const s = new Set([1, 2, 3]); .add(value)Adds a value to the Set.
const s = new Set();
s.add(10);
s.add(20);
s.add(10); // ignored because 10 already exists .delete(value)Removes a value if it exists.
s.delete(20); .has(value)Checks if a value exists inside the Set.
console.log(s.has(10)); // true
console.log(s.has(99)); // false .clear()Removes all items.
s.clear();
console.log(s.size); // 0 .sizeProperty that shows the number of unique elements.
console.log(s.size); Sets are iterable. You can loop through them in different ways:
for...ofconst fruits = new Set(["apple", "banana", "orange"]);
for (let fruit of fruits) {
console.log(fruit);
} .forEach()fruits.forEach(f => console.log(f)); Useful for indexing or using array methods.
const arr = [...fruits];
console.log(arr); const students = ["Ada", "Ben", "Ben", "Lara"];
const uniqueStudents = [...new Set(students)];
console.log(uniqueStudents);
// ["Ada", "Ben", "Lara"] const visitors = new Set();
visitors.add("user1");
visitors.add("user2");
visitors.add("user1"); // ignored const tags = ["js", "tech", "js", "web"];
const uniqueTags = [...new Set(tags)]; Combine items from both sets.
const A = new Set([1,2]);
const B = new Set([2,3]);
const union = new Set([...A, ...B]);
// Set {1, 2, 3} Values that appear in both sets.
const intersection = new Set([...A].filter(x => B.has(x)));
// Set {2} Values in A that are not in B.
const difference = new Set([...A].filter(x => !B.has(x)));
// Set {1} This will not work:
console.log(s[0]); // undefined Even though they don’t support indexing, they remember the order in which items were added.
This is different from regular equality in JavaScript.
new Set([NaN, NaN]); // Set { NaN } | Feature | Set | Array |
|---|---|---|
| Allows duplicates | ❌ No | ✅ Yes |
| Indexed access | ❌ No | ✅ Yes |
| Fast existence check | ✅ Yes | ❌ No |
| Useful for uniqueness | ✅ Excellent | ❌ Requires work |
| Order preserved | ✔️ Yes | ✔️ Yes |
add, delete, has, clear.Latest tech news and coding tips.
1. What Is the Golden Ratio? The Golden Ratio, represented by the Greek letter φ (phi), is…
In CSS, combinators define relationships between selectors. Instead of selecting elements individually, combinators allow you to target elements based…
Below is a comprehensive, beginner-friendly, yet deeply detailed guide to Boolean Algebra, complete with definitions, laws,…
Debugging your own code is hard enough — debugging someone else’s code is a whole…
Git is a free, open-source distributed version control system created by Linus Torvalds.It helps developers: Learn how to…
Bubble Sort is one of the simplest sorting algorithms in computer science. Although it’s not…