iter-tools-es
Version:
The iterable toolbox
37 lines (30 loc) • 691 B
JavaScript
const {
iterableCurry
} = require('../../internal/iterable.js');
const {
defaultCompareOrder
} = require('../../internal/compare.js');
const {
__peekerate
} = require('../$peekerate/peekerate.js');
function __isSorted(iterable, compare = defaultCompareOrder) {
const peekr = __peekerate(iterable);
while (!peekr.done) {
const {
value
} = peekr;
peekr.advance();
if (!peekr.done && compare(value, peekr.value) > 0) {
peekr.return();
return false;
}
}
return true;
}
exports.__isSorted = __isSorted;
const isSorted = /*#__PURE__*/iterableCurry(__isSorted, {
reduces: true,
minArgs: 0,
maxArgs: 1
});
exports.isSorted = isSorted;