Skip to content

Commit f3fb483

Browse files
authored
Merge pull request #63 from tdnelson2/develop
add absoluteValue function
2 parents bb6c0fd + 8006916 commit f3fb483

File tree

4 files changed

+4078
-1513
lines changed

4 files changed

+4078
-1513
lines changed

index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,5 @@ module.exports = Object.assign(
2828
require('./lib/isPositiveInteger.js'),
2929
require('./lib/isDecimal.js'),
3030
require('./lib/isNegativeInteger.js'),
31+
require('./lib/absoluteValue.js'),
3132
);

lib/absoluteValue.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
const handleErrors = (params) => {
3+
if (params.length === 0) throw new Error('Must provide one or more paramters');
4+
if (params.some(param => typeof param !== 'number')) {
5+
throw new Error('One of your parameters does not evaluate to a number');
6+
}
7+
// JS can only safely represent and compare integers
8+
// between Number.MAX_SAFE_INTEGER and Number.MAX_SAFE_INTEGER
9+
if (params.some(param => param > Number.MAX_SAFE_INTEGER || param < Number.MIN_SAFE_INTEGER)) {
10+
throw new Error('Cannot reliably test primality of numbers larger than 9,007,199,254,740,991 or smaller than -9,007,199,254,740,991');
11+
}
12+
};
13+
14+
/**
15+
* This function converts all numbers to a positive number
16+
* @memberof variadic
17+
* @author tdnelson2
18+
* @param {...*} params - One or more parameters.
19+
*/
20+
exports.absoluteValue = (...params) => {
21+
handleErrors(params);
22+
return params.map(num => Math.abs(num));
23+
};

0 commit comments

Comments
 (0)