@github/multimap
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

MultiMap

The multimap data structure is a map in which more than one value may be stored under each key.

Installation

$ npm install @github/multimap

Usage

import MultiMap from '@github/multimap'
const map = new MultiMap<string, number>()
map.set('a', 1)
map.set('a', 2)
map.get('a') // => Set([1, 2])
map.has('a') // => true
map.size // => 1

Constructors

  • MultiMap() - Create an empty map.
  • MultiMap(iterable) - Create a map with values from an iterable yielding key value pairs: new MultiMap([['k', 1], ['k', 2]])

Methods

  • get(key) - Retrieve the Set of values stored under a key or the empty Set if the key does not exist.
  • set(key, value) - Add a value to the key's set without removing previous values. Returns the map so set can be chained.
  • has(key) - Returns true if a value is stored under the key.
  • delete(key) - Remove key and all of key's values. Returns true if the key existed.
  • delete(key, value) - Remove a value from the key's set. Returns true if the key and value existed.
  • drain(value) - Remove a value from all keys that reference it. Returns an array of keys removed.
  • clear() - Remove all keys and values to empty the map.
  • keys() - An iterator of map keys.
  • values() - An iterator of Sets of values for all keys.
  • entries() - An iterator of [key, Set] pairs.

Properties

  • size - The number of keys in the map.

Development

npm install
npm test

License

Distributed under the MIT license. See LICENSE for details.

Dependencies (0)

    Dev Dependencies (6)

    Package Sidebar

    Install

    npm i @github/multimap

    Weekly Downloads

    448

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    5.68 kB

    Total Files

    5

    Last publish

    Collaborators

    • andrialexandrou
    • jfuchs
    • githubbot
    • manuelpuyol
    • jonrohan
    • broccolini
    • primer-css
    • keithamus
    • colebemis
    • smockle
    • simurai
    • khiga8
    • dustin.greif
    • srt32