forked from orbit-oss/is
Add is.arrayLike() (#26)
This commit is contained in:
parent
0bafa04e77
commit
83adc096ef
3 changed files with 29 additions and 0 deletions
3
index.js
3
index.js
|
|
@ -155,6 +155,9 @@ const typedArrayTypes = new Set([
|
|||
]);
|
||||
is.typedArray = x => typedArrayTypes.has(getObjectType(x));
|
||||
|
||||
const isValidLength = x => is.safeInteger(x) && x > -1;
|
||||
is.arrayLike = x => !is.nullOrUndefined(x) && !is.function(x) && isValidLength(x.length);
|
||||
|
||||
is.inRange = (x, range) => {
|
||||
if (is.number(range)) {
|
||||
return x >= Math.min(0, range) && x <= Math.max(range, 0);
|
||||
|
|
|
|||
14
readme.md
14
readme.md
|
|
@ -160,6 +160,20 @@ Returns `true` for instances created by a ES2015 class.
|
|||
|
||||
##### .typedArray(value)
|
||||
|
||||
##### .arrayLike(value)
|
||||
|
||||
A `value` is array-like if it is not a function and has a `value.length` that is a safe integer greater than or equal to 0.
|
||||
|
||||
```js
|
||||
is.arrayLike(document.forms);
|
||||
//=> true
|
||||
|
||||
function () {
|
||||
is.arrayLike(arguments);
|
||||
//=> true
|
||||
}
|
||||
```
|
||||
|
||||
##### .inRange(value, range)
|
||||
|
||||
Check if `value` (number) is in the given `range`. The range is an array of two values, lower bound and upper bound, in no specific order.
|
||||
|
|
|
|||
12
test.js
12
test.js
|
|
@ -392,6 +392,18 @@ test('is.typedArray', t => {
|
|||
t.false(m.typedArray({}));
|
||||
});
|
||||
|
||||
test('is.arrayLike', t => {
|
||||
(() => {
|
||||
t.true(m.arrayLike(arguments));
|
||||
})();
|
||||
t.true(m.arrayLike([]));
|
||||
t.true(m.arrayLike('unicorn'));
|
||||
|
||||
t.false(m.arrayLike({}));
|
||||
t.false(m.arrayLike(() => {}));
|
||||
t.false(m.arrayLike(new Map()));
|
||||
});
|
||||
|
||||
test('is.inRange', t => {
|
||||
const x = 3;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue