Set. What's special about it? What properties and methods does it have? How to iterate?

👨‍💻 Frontend Developer 🟠 May come up 🎚️ Medium
#JavaScript #Collections #JS Basics

Brief Answer

Set is a collection of unique values, where each value can appear only once. Unlike arrays, Set automatically removes duplicates and allows fast element existence checking.

const set = new Set([1, 2, 2, 3, 3, 4]);
console.log(set); // Set { 1, 2, 3, 4 } (duplicates removed)
console.log(set.size); // 4
console.log(set.has(2)); // true

Full Answer

Set is like a mailbox where each letter can exist in only one copy. If you try to put the same letter again, it just won’t be added! This is convenient when you need to store only unique values! 📮

Set Features

Main Set features:

Simple Examples

Creation and Basic Methods

// Creating Set
const numberSet = new Set();
 
// Adding elements
numberSet.add(1);
numberSet.add(2);
numberSet.add(2); // won't be added — duplicate!
 
console.log(numberSet); // Set { 1, 2 }
console.log(numberSet.size); // 2
 
// Checking existence
console.log(numberSet.has(1)); // true
console.log(numberSet.has(3)); // false
 
// Deletion
numberSet.delete(1);
console.log(numberSet.has(1)); // false

Removing Duplicates

// Removing duplicates from array
const arrayWithDuplicates = [1, 2, 2, 3, 3, 4];
const uniqueArray = [...new Set(arrayWithDuplicates)];
console.log(uniqueArray); // [1, 2, 3, 4]

Set Properties and Methods

Basic Properties

const set = new Set(['a', 'b', 'c']);
console.log(set.size); // 3 (number of elements)

Basic Methods

const set = new Set();
 
// add(value) — adds value
set.add('value');
 
// has(value) — checks value existence
const exists = set.has('value');
 
// delete(value) — removes value
set.delete('value');
 
// clear() — clears entire Set
set.clear();
 
// size — property, returns element count
console.log(set.size);

How to Iterate Set

Using for…of

const set = new Set(['apple', 'banana', 'orange']);
 
// Iterating values
for (const value of set) {
  console.log(value);
}

Using forEach

const set = new Set([1, 2, 3]);
 
set.forEach(value => {
  console.log(value);
});

When to Use Set

For Storing Unique Values

// List of unique tags
const tags = new Set();
tags.add('JavaScript');
tags.add('React');
tags.add('JavaScript'); // won't be added
console.log(tags); // Set { 'JavaScript', 'React' }

For Fast Existence Checking

// Fast checking if value exists
const allowedRoles = new Set(['admin', 'moderator', 'user']);
 
function checkRole(role) {
  return allowedRoles.has(role);
}
 
console.log(checkRole('admin')); // true
console.log(checkRole('guest')); // false

Common Mistakes

Confusion with Arrays

// ❌ Error — thinking Set is like array
const set = new Set([1, 2, 3]);
// set[0]; // undefined! Set has no indices
// set.length; // undefined! Set has no length
 
// ✅ Correctly — use Set methods
console.log(set.size); // 3
console.log(set.has(1)); // true

Forgetting new When Creating

// ❌ Error — forgot new
// const set = Set(); // TypeError!
 
// ✅ Correctly
const set = new Set();

Simple Rules

  1. Uniqueness — each value only once 🎯
  2. Automatic duplicate removal — when adding repeats 🚫
  3. Fast checking — [has()] method works quickly ⚡
  4. No indices — can’t get element by index like in array 🚫
  5. Iteration — can iterate with for…of and forEach 🔄

Set is an excellent choice when you need to store only unique values and quickly check their existence! 💪


Want more articles to prepare for interviews? Subscribe to EasyAdvice, bookmark the site and improve yourself every day 💪