UNPKG

@reactivex/ix-es5-esm

Version:

The Interactive Extensions for JavaScript

27 lines (25 loc) 1.13 kB
import { comparer as defaultComparer } from '../util/comparer.js'; /** * Determines whether two sequences are equal by comparing the elements pairwise. * * @template T The type of the elements in the source sequence. * @param {Iterable<T>} source First iterable sequence to compare. * @param {Iterable<T>} other Second iterable sequence to compare. * @param {SequencEqualOptions<T>} [options] The sequence equal options which include an optional comparer and optional abort signal. * @returns {boolean} A promise which indicates whether both sequences are of equal length and their * corresponding elements are equal. */ export function sequenceEqual(source, other, options) { var _a = (options || {})["comparer"], comparer = _a === void 0 ? defaultComparer : _a; var it1 = source[Symbol.iterator](); var it2 = other[Symbol.iterator](); var next1; var next2; while (!(next1 = it1.next()).done) { if (!(!(next2 = it2.next()).done && comparer(next1.value, next2.value))) { return false; } } return !!it2.next().done; } //# sourceMappingURL=sequenceequal.js.map