Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

rangeBy

Calculate the range of an array via a callback function.

The range is defined as the difference between the maximum and minimum values.

Usage

var rangeBy = require( '@stdlib/stats/array/range-by' );

rangeBy( x, clbk[, thisArg] )

Computes the range of an array via a callback function.

function accessor( v ) {
    return v * 2.0;
}

var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ];

var v = rangeBy( x, accessor );
// returns 18.0

The function has the following parameters:

  • x: input array.
  • clbk: callback function.
  • thisArg: execution context (optional).

The invoked callback is provided three arguments:

  • value: current array element.
  • index: current array index.
  • array: input array.

To set the callback execution context, provide a thisArg.

function accessor( v ) {
    this.count += 1;
    return v * 2.0;
}

var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ];

var context = {
    'count': 0
};

var v = rangeBy( x, accessor, context );
// returns 18.0

var cnt = context.count;
// returns 8

Notes

  • If provided an empty array, the function returns NaN.
  • A provided callback function should return a numeric value.
  • If a provided callback function does not return any value (or equivalently, explicitly returns undefined), the value is ignored.
  • The function supports array-like objects having getter and setter accessors for array element access (e.g., @stdlib/array/base/accessor).

Examples

var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var rangeBy = require( '@stdlib/stats/array/range-by' );

function accessor( v ) {
    return v * 2.0;
}

var x = discreteUniform( 10, -50, 50, {
    'dtype': 'float64'
});
console.log( x );

var v = rangeBy( x, accessor );
console.log( v );