UNPKG

arayts

Version:

让 TypeScript 开发如丝般顺滑。ArayTS 提供了一套高效、优雅的算法工具集,包含常用的数据结构与算法实现,帮助开发者轻松构建可靠的应用程序。

34 lines (33 loc) 1.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BloomFilter = void 0; /** * 布隆过滤器 */ var BloomFilter = /** @class */ (function () { function BloomFilter(size, numHashes) { this.bitArray = new Array(size).fill(false); this.hashFunctions = Array(numHashes).fill(0).map(function (_, i) { return function (item) { var hash = 0; for (var j = 0; j < item.length; j++) { hash = ((hash << 5) - hash + item.charCodeAt(j)) >>> 0; hash = ((hash + i) * 16777619) >>> 0; } return hash % size; }; }); } BloomFilter.prototype.add = function (item) { for (var _i = 0, _a = this.hashFunctions; _i < _a.length; _i++) { var hashFunc = _a[_i]; this.bitArray[hashFunc(item)] = true; } }; BloomFilter.prototype.test = function (item) { var _this = this; return this.hashFunctions.every(function (hashFunc) { return _this.bitArray[hashFunc(item)]; }); }; return BloomFilter; }()); exports.BloomFilter = BloomFilter;