UNPKG

dist-javascript-algorithms-and-data-structures

Version:

Algorithms and data-structures implemented on JavaScript

58 lines (44 loc) 1.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; class Comparator { /** * @param {function(a: *, b: *)} [compareFunction] */ constructor(compareFunction) { this.compare = compareFunction || Comparator.defaultCompareFunction; } /** * @param {(string|number)} a * @param {(string|number)} b * @returns {number} */ static defaultCompareFunction(a, b) { if (a === b) { return 0; } return a < b ? -1 : 1; } equal(a, b) { return this.compare(a, b) === 0; } lessThan(a, b) { return this.compare(a, b) < 0; } greaterThan(a, b) { return this.compare(a, b) > 0; } lessThanOrEqual(a, b) { return this.lessThan(a, b) || this.equal(a, b); } greaterThanOrEqual(a, b) { return this.greaterThan(a, b) || this.equal(a, b); } reverse() { const compareOriginal = this.compare; this.compare = (a, b) => compareOriginal(b, a); } } exports.default = Comparator;