unique
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:
- The unique value
array
is sorted in ascending order. - Computing the unique values for an unsorted
array
isO(N + N log(N))
and for a sortedarray
isO(N)
, whereN
is the length of the inputarray
.
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
Copyright
Copyright © 2014. Athan Reines.