Map.prototype.clear()
map.clear() Returns:
undefined · Added in vES6 · Updated March 13, 2026 · Map and Set javascript map clear cleanup
The Map.prototype.clear() method removes all key-value pairs from a Map object, instantly resetting it to an empty state. This is useful when you need to reset a cache, clear accumulated data, or reuse a Map instance for a new set of entries. The method operates in-place and returns undefined.
Syntax
map.clear()
Parameters
This method takes no parameters.
Return Value
Returns undefined. The Map is modified in-place.
Examples
Basic Usage
const fruits = new Map();
fruits.set('apple', 5);
fruits.set('banana', 3);
fruits.set('orange', 8);
console.log(fruits.size); // 3
fruits.clear();
console.log(fruits.size); // 0
Clearing After Processing
const cache = new Map();
// Populate cache with expensive computations
function getCachedData(key) {
if (cache.has(key)) {
return cache.get(key);
}
const data = computeExpensiveData(key);
cache.set(key, data);
return data;
}
// Later, clear the entire cache
cache.clear();
Common Patterns
Cache Reset Pattern
The most common use for clear() is resetting a cache:
class DataManager {
constructor(maxSize = 100) {
this.cache = new Map();
this.maxSize = maxSize;
}
get(key) {
if (this.cache.has(key)) {
const value = this.cache.get(key);
// Move to end (most recently used)
this.cache.delete(key);
this.cache.set(key, value);
return value;
}
return null;
}
set(key, value) {
// Evict oldest if at capacity
if (this.cache.size >= this.maxSize) {
const firstKey = this.cache.keys().next().value;
this.cache.delete(firstKey);
}
this.cache.set(key, value);
}
reset() {
this.cache.clear();
}
}
const manager = new DataManager(3);
manager.set('a', 1);
manager.set('b', 2);
manager.set('c', 3);
manager.reset(); // Cache is now empty
Session Data Management
class SessionStore {
constructor() {
this.userData = new Map();
}
setSession(userId, data) {
this.userData.set(userId, {
...data,
loginTime: Date.now()
});
}
endSession(userId) {
this.userData.delete(userId);
}
logoutAll() {
// Clear all active sessions
this.userData.clear();
}
isEmpty() {
return this.userData.size === 0;
}
}
const sessions = new SessionStore();
sessions.setSession('user1', { name: 'Alice' });
sessions.setSession('user2', { name: 'Bob' });
sessions.logoutAll(); // All users logged out
Clear vs Reassign
There are two ways to empty a Map:
const map = new Map([['a', 1], ['b', 2]]);
// Method 1: clear() - modifies existing Map
map.clear();
// map.size === 0, map still references the same object
// Method 2: Reassign to new Map
const map2 = new Map([['a', 1], ['b', 2]]);
map2 = new Map();
// Creates new Map, old one may be garbage collected
The clear() method is preferred when you want to:
- Keep the same Map reference
- Avoid creating a new object
- Explicitly signal “emptying” in code
Periodic Cleanup
const temporaryData = new Map();
// Add data with timestamps
temporaryData.set('task1', { data: 'result', timestamp: Date.now() });
temporaryData.set('task2', { data: 'result', timestamp: Date.now() });
function cleanupOldEntries(maxAge = 3600000) {
const now = Date.now();
for (const [key, value] of temporaryData) {
if (now - value.timestamp > maxAge) {
temporaryData.delete(key);
}
}
}
// Clear everything after processing
function finishBatch() {
const count = temporaryData.size;
temporaryData.clear();
return `Processed ${count} entries`;
}
Event Listener Management
class EventEmitter {
constructor() {
this.listeners = new Map();
}
on(event, callback) {
if (!this.listeners.has(event)) {
this.listeners.set(event, []);
}
this.listeners.get(event).push(callback);
}
removeAllListeners(event) {
if (event) {
this.listeners.delete(event);
} else {
// Remove all listeners for all events
this.listeners.clear();
}
}
}
const emitter = new EventEmitter();
emitter.on('click', () => console.log('clicked'));
emitter.on('hover', () => console.log('hovered'));
// Clear all listeners
emitter.removeAllListeners();
See Also
- Map.prototype.delete() — remove a single entry
- Map.prototype.set() — add or update a key-value pair
- Map.prototype.get() — read a stored value