Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

compute-anagram-hash

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

compute-anagram-hash

Anagram hash table.

  • 0.0.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

Anagram Hash

NPM version Build Status Coverage Status Dependencies

Anagram hash table.

Installation

$ npm install compute-anagram-hash

For use in the browser, use browserify.

Usage

var createHash = require( 'compute-anagram-hash' );
createHash( [arr] )

Creates an anagram hash table.

var hash = createHash();

To initialize the hash table, provide a string array.

var arr = [
	'beep',
	'boop',
	'bop',
	'bap',
	'foo',
	'bar',
	'cat',
	'bat',
	'moot',
	'woot',
	'moto',
	'tab',
	'pad',
	'Shakespeare is awesome!'
];

var hash = createHash( arr );

The hash table has the following methods...

hash.push( str[, str,...,str] )

Add strings to the anagram hash table.

hash.push( 'dog', 'rad', 'super' );
hash.get( [str[, key]] )

Returns a list of anagrams. If provided an input string, the method returns a list of corresponding anagrams from the hash table; otherwise, the method returns all anagram lists. If no anagrams exist, the method returns null.

// Get all anagrams:
var lists = hash.get();
// returns [['bat','tab'],['moot','moto']]

// Get anagrams corresponding to a particular string:
var list = hash.get( 'moot' );
// returns ['moto']

list = hash.get( 'beep' );
// returns null

If the input string is a hash key, set the key flag to true. When provided a hash key, the method returns all anagrams associated with a particular key (possibly including the key itself).

var list = hash.get( 'abt', true );
// returns ['bat','tab']

list = hash.get( 'beep', true );
// returns ['beep']

Note: when returning all anagram lists, the list order is not guaranteed.

hash.getKey( str )

Hashing function. Converts an input string to an alphagram.

var key = hash.getKey( 'tab' );
// returns 'abt'

var list = hash.get( key, true );
// returns ['bat','tab']
hash.keys( [opts] )

Returns a list of hash keys.

var keys = hash.keys();
// returns ['abp','abr','abt','act',...]

The method accepts the following options:

  • min: minimum number of anagrams.
  • max: maximum number of anagrams.

To return keys having at least a min number of anagrams, set the min option.

var keys = hash.keys({ 'min': 2 });
// returns ['abt','moot']

To return keys having at most a max number of anagrams, set the max option.

var keys = hash.keys({ 'max': 1 });
// returns ['abp','abr','act','adp',...]
hash.merge( hash1[, hash2,...,hashN] )

Merges anagram hash tables into the current anagram hash instance.

var mhash1, mhash2;

mhash1 = createHash( ['yes','no'] );
mhash2 = createHash( ['beep','bepe'] );

hash.merge( mhash1, mhash2 );

var list = hash.get( 'beep', true );
// returns ['beep','bepe']
hash.copy( [keys] )

Copies an anagram hash table to a new hash table instance.

var copy = hash.copy();

var list = copy.get( 'abt', true );
// returns ['bat','tab']

To only copy specific keys to a new hash table, provide a keys array.

var copy = hash.copy( ['beep'] );

var keys = copy.keys();
// returns ['beep']

Examples

var createHash = require( 'compute-anagram-hash' );

// Load a string array containing tokenized words:
var words = require( './words.json' );

// Create a new hash:
var hash = createHash( words );

// Get all anagram lists:
var lists = hash.get();

// Get a single anagram list:
var list = hash.get( 'rome' );

To run the example code from the top-level application directory,

$ node ./examples/index.js

Tests

Unit

Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:

$ make test

All new feature development should have corresponding unit tests to validate correct functionality.

Test Coverage

This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:

$ make test-cov

Istanbul creates a ./reports/coverage directory. To access an HTML version of the report,

$ make view-cov

License

MIT license.

Copyright © 2015. Athan Reines.

Keywords

FAQs

Package last updated on 01 Apr 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc