Add is.inRange() (#3)

This commit is contained in:
gui 2017-09-25 20:20:06 +01:00 committed by Sindre Sorhus
parent 119c41d39b
commit 3cbef48b6c
3 changed files with 28 additions and 0 deletions

View file

@ -150,4 +150,12 @@ const typedArrayTypes = new Set([
]);
is.typedArray = x => typedArrayTypes.has(getObjectType(x));
is.inRange = (x, range) => {
if (is.number(range)) {
return (x >= Math.min(0, range)) && (x <= Math.max(range, 0));
}
return (is.array(range)) && (x >= Math.min.apply(Math, range)) && (x <= Math.max.apply(Math, range));
};
module.exports = is;

View file

@ -121,6 +121,13 @@ Returns `true` for instances created by a ES2015 class.
##### .typedArray(value)
##### .inRange(value, range)
Check to see if the value is within a given range, for example `is.inRange(3, [0, 5])`.
The range supplied can be an array of any size, though this will only check for
the minimum and maximum values in it.
If `range` is a number (e.g., `is.inRange(3, 10)`), it will be treated as a range of 0 to `range`.
## FAQ

13
test.js
View file

@ -305,3 +305,16 @@ test('is.typedArray', t => {
t.false(m.typedArray([]));
t.false(m.typedArray({}));
});
test('is.inRange', t => {
const x = 3;
t.true(m.inRange(x, [0, 5]));
t.true(m.inRange(x, [5, 0]));
t.true(m.inRange(x, [-5, 5]));
t.true(m.inRange(x, [5, -5]));
t.false(m.inRange(x, [4, 8]));
t.true(m.inRange(x, 10));
t.false(m.inRange(x, 2));
});