A bi-directional map, with unique keys to unique values. Internally,
its a map and its inverse map which allows value to be looked up through
key, and key through value.
Eg. email id <-> person name.
const BiMap = require('extra-bimap');
// : all Map() functions available
var m = new BiMap();
// BiMap [Map] {}
m.set(1, 'a');
// BiMap [Map] { 1 => 'a' }
m.set(2, 'b');
// BiMap [Map] { 1 => 'a', 2 => 'b' }
m.set(2, 'a');
// Error: BiMap pair is not unique
m.inverse;
// BiMap [Map] { 'a' => 1, 'b' => 2 }
m.inverse.set('a', 2);
// Error: BiMap pair is not unique
m.inverse.set('b', 3);
// BiMap [Map] { 'a' => 1, 'b' => 3 }
m.inverse.inverse
// BiMap [Map] { 1 => 'a', 3 => 'b' }
m.delete(1);
// BiMap [Map] { 3 => 'b' }
m.inverse.has('a')
// false| Name | Action |
|---|---|
| BiMap | Creates a bi-directional map, with unique keys to unique values. |
| inverse | Gives reversed bi-directional map. |
| clear | Removes all elements from map. |
| delete | Removes the specified element from map. |
| set | Adds or updates an element with a specified key and a value to map. |
| size | Same as Map. |
| entries | Same as Map. |
| forEach | Same as Map. |
| get | Same as Map. |
| has | Same as Map. |
| keys | Same as Map. |
| values | Same as Map. |
| @@iterator | Same as Map. |