compute-signum
Version:
Signum function.
44 lines (35 loc) • 879 B
JavaScript
;
// MODULES //
var deepSet = require( 'utils-deep-set' ).factory,
deepGet = require( 'utils-deep-get' ).factory,
SIGN = require( './number.js' );
// SIGNUM FUNCTION //
/**
* FUNCTION: signum( arr, path[, sep] )
* Evaluates the signum function for each array element and deep sets the input array.
*
* @param {Array} arr - input array
* @param {String} path - key path used when deep getting and setting
* @param {String} [sep] - key path separator
* @returns {Array} input array
*/
function signum( x, path, sep ) {
var len = x.length,
opts = {},
dget,
dset,
i;
if ( arguments.length > 2 ) {
opts.sep = sep;
}
if ( len ) {
dget = deepGet( path, opts );
dset = deepSet( path, opts );
for ( i = 0; i < len; i++ ) {
dset( x[i], SIGN( dget( x[i] ) ) );
}
}
return x;
} // end FUNCTION signum()
// EXPORTS //
module.exports = signum;