Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

interval-operations

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

interval-operations

Utilities for performing mathematical set operations on intervals and arrays of intervals

  • 2.0.0
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
6.7K
increased by5.12%
Maintainers
1
Weekly downloads
 
Created
Source

Interval operations

A collection of dependency-free utility functions for performing mathematical set operations on intervals and arrays of intervals.

Installation

npm install interval-operations
// or, with yarn
yarn add interval-operations

Usage

Union

import { union, arrayUnion } from 'interval-operations';

union([1,3], [2,4], [5,7]); // [[1,4], [5,7]]
arrayUnion([[1,3], [5,7]], [[2,4], [6,8]]); // [[1,4], [5,8]]

Intersection

import { intersection, arrayIntersection } from 'interval-operations';

intersection([1,3], [2,4]); // [2,3]
intersection([1,2], [3,4]); // null
arrayIntersection([[1,3], [5,7]], [[2,4], [6,8]]); // [[2,3], [5,6]]

Difference

import { difference, arrayDifference } from 'interval-operations';

difference([1,3], [2,3]); // [1,2]
arrayDifference([[1,3], [4,6]], [[2,5]]); // [[1,2], [5,6]]

Contains

import { contains, arrayContains } from 'interval-operations';

contains([1,3], [2,3]); // true
contains([1,3], [3,4]); // false
arrayContains([[1,3], [2,5]], [[1,5]]); // true

Example with dates

const store1Hours = [
  [new Date('2019-03-14 08:00'), new Date('2019-03-14 16:00')],
  [new Date('2019-03-16 10:00'), new Date('2019-03-16 14:00')]
];

const store2Hours = [
  [new Date('2019-03-14 10:00'), new Date('2019-03-14 14:00')],
  [new Date('2019-03-15 08:00'), new Date('2019-03-15 16:00')],
];

// When is at least one store open?
arrayUnion(store1Hours, store2Hours);
/* [
  [new Date('2019-03-14 08:00'), new Date('2019-03-14 16:00')],
  [new Date('2019-03-15 08:00'), new Date('2019-03-15 16:00')],
  [new Date('2019-03-16 10:00'), new Date('2019-03-16 14:00')]
] */

// When are both stores open?
arrayIntersection(store1Hours, store2Hours);
// [[new Date('2019-03-14 10:00'), new Date('2019-03-14 14:00')]]

// When is only store 1 open?
arrayDifference(store1Hours, store2Hours);
/* [
  [new Date('2019-03-14 08:00'), new Date('2019-03-14 10:00')],
  [new Date('2019-03-14 14:00'), new Date('2019-03-14 16:00')],
  [new Date('2019-03-16 10:00'), new Date('2019-03-16 14:00')]
] */

Keywords

FAQs

Package last updated on 26 Jun 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc