compute-unique

1.0.1 • Public • Published

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.

Package Sidebar

Install

npm i compute-unique

Weekly Downloads

127

Version

1.0.1

License

none

Last publish

Collaborators

  • kgryte