
rotated-array-set
RotatedArraySet
is a class looking a bit like the built-in Set but is a set of arrays of T
, and treats rotated arrays as "same".
API
Construct a RotatedArraySet
, optionally provide a stringify method, converting T
to string
(this is not necessary for primitive types).
Versions
- Since v2 this is a pure ESM package, and requires Node.js >=12.20. It cannot be used from CommonJS.
- Since v3 requires Node.js >= 14.13.1.
Example
import { RotatedArraySet } from 'rotated-array-set'
const tree = new RotatedArraySet< string >( );
tree.insert( [ 'a', 'b', 'c' ] );
tree.insert( [ 'x', 'y' ] );
tree.insert( [ 'c', 'a', 'b' ] );
tree.insert( [ 'y', 'x' ] );
tree.has( [ 'b', 'c', 'a' ] );
tree.has( [ 'c', 'b', 'a' ] );
tree.values( );
Provide a custom stringifier:
import { RotatedArraySet } from 'rotated-array-set'
const tree = new RotatedArraySet< User >( user => `${user.first} ${user.last}` );
tree.insert( [ user1, user2, user3 ] );
tree.insert( [ user3, user1, user2 ] );
tree.has( [ user2, user3, user1 ] );
tree.has( [ user3, user2, user1 ] );
tree.values( );