Set.prototype.delete()

set.delete(value)
Returns: boolean · Updated March 13, 2026 · Map and Set
set delete remove

The delete() method removes a specific value from a Set. It returns true if the value existed and was removed, or false if the value didn’t exist.

Syntax

set.delete(value)

Parameters

ParameterTypeDescription
valueanyThe value to remove from the Set

Examples

Basic usage

const numbers = new Set([1, 2, 3, 4, 5]);

const deleted = numbers.delete(3);
console.log(deleted);
// true

console.log(numbers.has(3));
// false

console.log(numbers.size);
// 4

Deleting non-existent values

const numbers = new Set([1, 2, 3]);

// Deleting a non-existent value returns false
console.log(numbers.delete(99));
// false

// Set remains unchanged
console.log([...numbers]);
// [1, 2, 3]

Conditional removal

const cache = new Set(['user:1', 'user:2', 'user:3', 'session:abc']);

// Only delete if it exists
function invalidate(key) {
  if (cache.has(key)) {
    cache.delete(key);
    return true;
  }
  return false;
}

console.log(invalidate('user:1'));
// true
console.log(invalidate('user:99'));
// false

Cleaning up a Set

const items = new Set(['a', 'b', 'c', 'd', 'e']);

// Remove multiple values
['a', 'c', 'e'].forEach(v => items.delete(v));

console.log([...items]);
// ['b', 'd']

Using delete in loops

const data = new Set([1, 2, 3, 4, 5]);

// Remove even numbers
for (const num of data) {
  if (num % 2 === 0) {
    data.delete(num);
  }
}

console.log([...data]);
// [1, 3, 5]

Clearing based on condition

const scores = new Set([10, 25, 30, 50, 100]);

// Remove all scores below 30
for (const score of scores) {
  if (score < 30) {
    scores.delete(score);
  }
}

console.log([...scores]);
// [30, 50, 100]

See Also