1.0.1 • Published 9 years ago

compute-unique v1.0.1

Weekly downloads
179
License
-
Repository
github
Last release
9 years ago

unique

NPM version Build Status Coverage Status Dependencies

Removes duplicate values from a numeric array.

Installation

$ npm install compute-unique

For use in the browser, use browserify.

Usage

To use the module,

var unique = require( 'compute-unique' );

unique( arr, sorted )

Removes duplicate values from a numeric array. If the array is already sorted in ascending order, set the optional second argument to true.

var unsorted = [ 3, 1, 1, 4, 3, 5 ],
	sorted = [ 1, 1, 3, 3, 4, 5 ];

unique( unsorted );
// [ 1, 3, 4, 5 ]

unique( sorted, true );
// [ 1, 3, 4, 5 ]

Note: the input array is mutated. To avoid unwanted mutation of the original array,

var copy = unsorted.slice();

unique( copy );

Examples

var unique = require( 'compute-unique' );

// Simulate some data...
var data = new Array( 1000 );

for ( var i = 0; i < data.length; i++ ) {
	data[ i ] = Math.round( Math.random()*10 );
}

// Determine the unique values:
unique( data );

console.log( data.join( '\n' ) );
// returns (with high probability) an array of length 11 with values 0:1:10

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

$ node ./examples/index.js

Notes

A couple of notes:

  1. The unique value `array` is sorted in ascending order.
  2. Computing the unique values for an unsorted `array` is `O(N + N log(N))` and for a sorted `array` is `O(N)`, where `N` is the length of the input `array`.

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

Copyright © 2014. Athan Reines.