Skip to main content
Home

Built and signed on GitHub Actions

Set of utilities to work with intervals (ranges) of numbers or custom types.

This package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
This package works with Browsers
JSR Score
94%
Published
2 weeks ago (0.2.0)
function merge
merge(intervals: Interval<number>[]): Interval<number>[]

Merges overlapping number intervals.

Examples

Example 1

merge([[1, 3], [8, 10], [2, 6]])
// [[1, 6], [8, 10]]

Parameters

intervals: Interval<number>[]

Return Type

merge<T>(
intervals: Interval<T>[],
options: { compareFn: (
a: T,
b: T,
) => number
; }
,
): Interval<T>[]

Merges overlapping intervals of type T using a provided comparator function.

Examples

Example 1

const dates = [
  [new Date("2023-01-01"), new Date("2023-01-05")],
  [new Date("2023-01-03"), new Date("2023-01-10")],
  [new Date("2023-01-15"), new Date("2023-01-20")]
];

merge(dates, { compareFn: (a, b) => (a.getTime() - b.getTime()) });
// [
//   [new Date("2023-01-01"), new Date("2023-01-10")],
//   [new Date("2023-01-15"), new Date("2023-01-20")]
// ]

Type Parameters

Parameters

intervals: Interval<T>[]
options: { compareFn: (
a: T,
b: T,
) => number
; }

Return Type

New Ticket: Report package

Please provide a reason for reporting this package. We will review your report and take appropriate action.

Please review the JSR usage policy before submitting a report.

Add Package

deno add jsr:@evermake/intervals

Import symbol

import { merge } from "@evermake/intervals";
or

Import directly with a jsr specifier

import { merge } from "jsr:@evermake/intervals";

Add Package

pnpm i jsr:@evermake/intervals
or (using pnpm 10.8 or older)
pnpm dlx jsr add @evermake/intervals

Import symbol

import { merge } from "@evermake/intervals";

Add Package

yarn add jsr:@evermake/intervals
or (using Yarn 4.8 or older)
yarn dlx jsr add @evermake/intervals

Import symbol

import { merge } from "@evermake/intervals";

Add Package

npx jsr add @evermake/intervals

Import symbol

import { merge } from "@evermake/intervals";

Add Package

bunx jsr add @evermake/intervals

Import symbol

import { merge } from "@evermake/intervals";