@monstermann/fn
Version:
A utility library for TypeScript.
32 lines (31 loc) • 617 B
JavaScript
//#region src/array/internals/range.ts
function createRange() {
return [];
}
function hasRange(range) {
return range.length > 0;
}
function addRange(range, idx) {
let i = range.length;
while (i--) {
const v = range[i];
if (v === idx) return;
if (idx < v) return void range.splice(i, 0, idx);
}
range.push(idx);
}
function spliceRange(target, range) {
let i = range.length;
while (i--) {
let start = range[i];
let len = 1;
while (range[i - 1] === start - 1) {
start--;
len++;
i--;
}
target.splice(start, len);
}
}
//#endregion
export { addRange, createRange, hasRange, spliceRange };