Javascript Hashset 1.0
JavaScript Hashset' is a pure JS implementation of the HashSet data-type. It is suitable with for client usage and also for node.js . It is optimized for JavaScript search / lookup routines - which can be a performance bottleneck slow when iterating Arrays in JavaScript.
This is free software available at http://searchturbine.com/js/javascript-hashset under the BSD License.
Compatibility: Internet Explorer 5, IE5.5, IE6, IE7, IE8, IE9, IE10, IE11. Node, NPM, Chrome. FireFox, Opera, Konqueror. It has 'close to universal' JS compatibility.
A hashset is like an unordered array of values, but it can be searched for a value exponentially faster than a the native Array.contains or Array.indexOf functions. This makes it easier to write efficient, fast code. Hassets may use marginally more memory than normal arrays, but not exponentially more so.
Hashsets are hugely popular in optimized c# and Java programming - because they allow developers a very fast way for looking up (searching) to see if a value already exists in a Hashset. It uses a dictionary like lookup - which does not get slower as the set grows in size. This is ideal for situations which we want avoid duplicate entries in an array - or check the existence of a value without a performance slowdown.
A common weakness of Hashsets is that they are unordered - and as such - can not be enumerated (foreach). This weakness is overcome in 'JavaScript Searchable Hashset' with a enumerate function and also a copyToArray function.
'JavaScript Searchable Hashset' can use any value as a key. String, integer, array, classes, and even types. This makes it flexible an in-keeping with common js programming practices.
It also includes the advanced hashset functions that Java and dotNet developers expect such as : 'copyToArray', 'exceptWith', 'isSubsetOf' and 'unionWith' which make it ideal for use in lower-level / higher performance applications.