A bidirectional map based on the ES6 Map object containing additional methods to retrive keys by values, delete key-value pairs by values and check the existence of keys by values. The module contains two classes:BiMap
&WeakBiMap
based onMap
&WeakMap
respectively.
import{WeakBiMap}from'bim'// create objects to use as keysconsta={i:'foo',j:8,}constb={k:'bar',p:11,}// create the bidirectional weak mapconstwbm=newWeakBiMap()wbm.set(a,5)wbm.set(b,6)wbm.deleteValue(5)// now only has { k: 'bar', p: 11 } => 6wbm.hasValue(5)// falseconstc={h:'quux',z:100,}wbm.set(c,7)wbm.hasValue(7)// truewbm.getKey(7)// { h: 'quux', z: 100 }