Explorer
Node.js

Implement a simple `createEventEmitter()` that returns an object with `on(event, fn)`, `emit(event, data)`, and `off(event, fn)` methods.

Problem Statement

Implement a simple `createEventEmitter()` that returns an object with `on(event, fn)`, `emit(event, data)`, and `off(event, fn)` methods.

Complexity

Time Complexity: -

Space Complexity: -

Hints

šŸ’” Hint 1: Store event listeners in a Map or object: { eventName: [fn1, fn2] }. šŸ’” Hint 2: on() adds a listener, emit() calls all listeners, off() removes one. šŸ’” Hint 3: Use an object with event names as keys and arrays of functions as values. āœ… Solution: ```javascript function createEventEmitter() { const events = {}; return { on(event, fn) { (events[event] = events[event] || []).push(fn); }, emit(event, data) { (events[event] || []).forEach(fn => fn(data)); }, off(event, fn) { events[event] = (events[event] || []).filter(f => f !== fn); } }; } ```

Observer Pattern (Pub/Sub)

Medium
Implement a simple `createEventEmitter()` that returns an object with `on(event, fn)`, `emit(event, data)`, and `off(event, fn)` methods.
Editor
Loading Editor...
Evaluate code
Output:Click "Run" above to execute and verify your code here.
["hello","world"]