cspell-lib
Version:
A library of useful functions used across various cspell tools.
46 lines • 1.1 kB
JavaScript
export class FreqCounter {
_total = 0;
_counters = new Map();
get total() {
return this._total;
}
get counters() {
return this._counters;
}
getCount(key) {
return this._counters.get(key);
}
getFreq(key) {
return (this.getCount(key) || 0) / (this._total || 1);
}
addKeyCount(key, count) {
this._total += count;
this._counters.set(key, (this._counters.get(key) || 0) + count);
return this;
}
addKey(key) {
return this.addKeyCount(key, 1);
}
addKeys(keys) {
for (const key of keys) {
this.addKey(key);
}
}
addKeyCounts(values) {
for (const pair of values) {
this.addKeyCount(pair[0], pair[1]);
}
}
merge(...freqCounters) {
for (const fc of freqCounters) {
this.addKeyCounts(fc._counters);
}
return this;
}
static create(values) {
const fc = new FreqCounter();
fc.addKeys(values || []);
return fc;
}
}
//# sourceMappingURL=FreqCounter.js.map