simple-bimap
v1.0.1
Published
<div align="center"> <h1>🗺️↔️ simple-bimap</h1> <a href="https://www.npmjs.com/package/simple-bimap"> <img src="https://img.shields.io/npm/v/simple-bimap" alt="simple-bimap on npm"> </a> <a href="https://github.com/aleksander-ciesielski/
Downloads
3
Maintainers
Readme
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.