Hi there! Are you looking for the official Deno documentation? Try docs.deno.com for all your Deno learning needs.

Counter

A map that counts occurrences of keys.

@example
// Count word occurrences
const wordCounter = new Counter<string>()
const words = ['apple', 'banana', 'apple', 'cherry', 'banana', 'apple']

for (const word of words) {
  wordCounter.increment(word)
}

console.log(wordCounter.get('apple'))   // 3
console.log(wordCounter.get('banana'))  // 2
console.log(wordCounter.get('cherry'))  // 1
console.log(wordCounter.get('orange'))  // 0 (defaults to 0)
@example
// Initialize with existing counts
const counter = new Counter<string>([
  ['red', 5],
  ['blue', 3],
  ['green', 7]
])

counter.increment('red', 2)      // red: 5 -> 7
counter.decrement('blue')        // blue: 3 -> 2
counter.increment('yellow')      // yellow: 0 -> 1

console.log(counter.get('red'))    // 7
console.log(counter.get('blue'))   // 2
console.log(counter.get('yellow')) // 1
@example
// Track event frequencies
const eventCounter = new Counter<string>()

eventCounter.increment('click', 5)
eventCounter.increment('hover', 3)
eventCounter.increment('click', 2)

// Get most common events
const events = [...eventCounter.entries()]
  .sort((a, b) => b[1] - a[1])

console.log(events) // [['click', 7], ['hover', 3]]
class Counter<K> extends Map<K, number> {
constructor(iterable?: Iterable<readonly [K, number]>);
decrement(key: K, amount?: number): void;
get(key: K): number;
increment(key: K, amount?: number): void;
}

§Type Parameters

§Extends

§
Map<K, number>
[src]

§Constructors

§
new Counter(iterable?: Iterable<readonly [K, number]>)
[src]

§Methods

§
decrement(key: K, amount?: number): void
[src]

Decrements the count for a key by a given amount (default 1).

§
get(key: K): number
[src]
§
increment(key: K, amount?: number): void
[src]

Increments the count for a key by a given amount (default 1).