Skip to content

🗺️↔️ A Map-compatible implementation of the bidirectional map

License

Notifications You must be signed in to change notification settings

aleksander-ciesielski/simple-bimap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🗺️↔️ simple-bimap

simple-bimap on npm GitHub issues Licensed using MIT license

A tiny (~400 bytes gzipped) implementation of a bidirectional map in JavaScript. It can be used interchangeably with the JavaScript Map as Bimap implements its whole interface while also providing new methods. Note that Bimap requires a bijective relation between the keys and values, unlike a normal map.

Warning: Although Bimap instances are assignable to the Map ones, Bimap does NOT inherit from the Map.

Installation

Via npm:

$ npm i simple-bimap --save


Via yarn:

$ yarn add simple-bimap

Usage

import { Bimap } from "simple-bimap";

API

Apart from all the properties from the Map, the Bimap offers three extra methods:

Method Description
Bimap<K, V>.prototype.getByValue(value: V): K | undefined Returns the key associated with the given value or undefined if it doesn't exist.
Bimap<K, V>.prototype.hasValue(value: V): boolean Returns true if the given value is in the bimap and false otherwise.
Bimap<K, V>.prototype.deleteByValue(value: V): boolean Deletes a bimap entry that has a value equal to the one given as the argument. Returns true if the deletion was successful and false otherwise.

The time complexities of each of these methods are equal to the complexities of their corresponding key-oriented counterparts (get/has/delete), so they should be sublinear.

About

🗺️↔️ A Map-compatible implementation of the bidirectional map

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published