compute-median v2.0.0
Median
Computes the median of an array.
Installation
$ npm install compute-medianFor use in the browser, use browserify.
Usage
var median = require( 'compute-median' );median( arr, options )
Computes the median of an array. For unsorted primitive number arrays,
var unsorted = [ 5, 3, 2, 4 ];
var m1 = median( unsorted );
// returns 3.5The function accepts two options:
sorted:booleanflag indicating if the inputarrayis sorted in ascending order. Default:false.accessor: accessorfunctionfor accessing values in objectarrays.
If the input array is already sorted in ascending order, set the sorted option to true.
var sorted = [ 2, 3, 4, 5 ];
var m2 = median( sorted, {
'sorted': true,
});
// returns 3.5For object arrays, provide an accessor function for accessing numeric array values
var data = [
[1,5],
[3,3],
[4,2],
[5,4],
];
function getValue( d ) {
return d[ 1 ];
}
var m3 = median( data, {
'sorted': false,
'accessor': getValue
});
// returns 3.5Note: if provided an empty array, the function returns null.
Examples
var median = require( 'compute-median' );
var data = new Array( 1001 );
for ( var i = 0; i < data.length; i++ ) {
data[ i ] = Math.round( Math.random() * 100 );
}
console.log( median( data ) );To run the example code from the top-level application directory,
$ node ./examples/index.jsNotes
For an input array of length N,
- if provided a sorted (in ascending order) numeric
array, the function isO(1). - if provided a sorted object
array, the function isO(N). - if provided an unsorted numeric
array, the function isO( N log(N) ). if provided an unsorted object `array`, the function is `O( N + N log(N) )`.
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 testAll 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-covIstanbul creates a ./reports/coverage directory. To access an HTML version of the report,
$ make view-covLicense
Copyright
Copyright © 2014-2015. Athan Reines.