Employee Spotlight

### From Academia to Industry

Philipp Burckhardt recounts his journey from childhood computer fascinations, to building an e-learning platform at Carnegie Mellon University, and on to his current role at Socket.

You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 7-8.RSVP →

compute-median

Advanced tools

- Version published

- Weekly downloads
- 2.4K
- increased by74.14%

- Maintainers
- 1

- Install size
- 31.1 kB

- Created

Weekly downloads

Readme

Computes the median of an array.

```
$ npm install compute-median
```

For use in the browser, use browserify.

```
var median = require( 'compute-median' );
```

Computes the median of an `array`

. For unsorted primitive number `arrays`

,

```
var unsorted = [ 5, 3, 2, 4 ];
var m1 = median( unsorted );
// returns 3.5
```

The function accepts two `options`

:

`sorted`

:`boolean`

flag indicating if the input`array`

is sorted in**ascending**order. Default:`false`

.`accessor`

: accessor`function`

for accessing values in object`arrays`

.

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.5
```

For 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.5
```

**Note**: if provided an empty `array`

, the function returns `null`

.

```
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.js
```

For an input `array`

of length `N`

,

- if provided a sorted (in
**ascending**order) numeric`array`

, the function is`O(1)`

. - if provided a sorted object
`array`

, the function is`O(N)`

. - if provided an unsorted numeric
`array`

, the function is`O( N log(N) )`

. - if provided an unsorted object
`array`

, the function is`O( N + N log(N) )`

.

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.

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
```

Copyright © 2014-2015. Athan Reines.

FAQs

Computes the median of an array.

The npm package compute-median receives a total of **2,008** weekly downloads. As such, compute-median popularity was classified as **popular**.

We found that compute-median demonstrated a **not healthy** version release cadence and project activity because the last version was released a year ago. It has **1 open source maintainer** collaborating on the project.

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Employee Spotlight

Philipp Burckhardt recounts his journey from childhood computer fascinations, to building an e-learning platform at Carnegie Mellon University, and on to his current role at Socket.

By Philipp Burckhardt - Aug 01, 2024

Security News

Git dependencies in open source packages can introduce significant risks, including lack of version control, stability issues, dependency drift, and difficulty in auditing, making them potential targets for supply chain attacks.

By Sarah Gooding - Jul 26, 2024

Security News

Node.js has added experimental support for TypeScript, a move that highlights the growing importance of TypeScript in modern development.

By Sarah Gooding - Jul 26, 2024