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.
Database migration is one of the most challenging tasks in software engineering. While both PostgreSQL…
Modern JavaScript isn’t just let, const, arrow functions, and promises anymore. Over the years, the language has…
Software development is one of the most rewarding careers in technology, but it is also…
Printing a document in JavaScript usually means triggering the browser’s print dialog and controlling what…
The display property controls how an element behaves in the layout and how its children are arranged. Access software…
JavaScript is one of the most flexible programming languages ever created. That flexibility is powerful,…