Add is.inRange() (#3)
This commit is contained in:
parent
119c41d39b
commit
3cbef48b6c
3 changed files with 28 additions and 0 deletions
8
index.js
8
index.js
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
13
test.js
|
|
@ -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));
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue