1.0.1 • Published 2 years ago

simple-bimap v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

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:

MethodDescription
Bimap<K, V>.prototype.getByValue(value: V): K \| undefinedReturns the key associated with the given value or undefined if it doesn't exist.
Bimap<K, V>.prototype.hasValue(value: V): booleanReturns true if the given value is in the bimap and false otherwise.
Bimap<K, V>.prototype.deleteByValue(value: V): booleanDeletes 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.