compute-unique

Removes duplicate values from a numeric array.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
compute-unique
511.0.19 years ago9 years agoMinified + gzip package size for compute-unique in KB

Readme

unique
!NPM versionnpm-imagenpm-url !Build Statustravis-imagetravis-url !Coverage Statuscoveralls-imagecoveralls-url !Dependenciesdependencies-imagedependencies-url
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.