1 | ;
|
2 |
|
3 | var isObject = require('./object'),
|
4 | isNumber = require('./number');
|
5 |
|
6 | /**
|
7 | * Checks whether a value looks like an array
|
8 | * That means:
|
9 | * * is an object
|
10 | * * has 'length' property
|
11 | * * 'length' property is a number greater or equal 0
|
12 | *
|
13 | * **Aliases** _arrLike_
|
14 | *
|
15 | * @function arrayLike
|
16 | *
|
17 | * @example
|
18 | * var is = require('predicates');
|
19 | *
|
20 | * is.arrayLike(arguments); // true
|
21 | * is.arrayLike(document.querySelectorAll('div')); // true
|
22 | * is.arrayLike([1, 2, 3]); // true
|
23 | * is.arrayLike({}); // false
|
24 | *
|
25 | * @param {*} value
|
26 | * @returns {Boolean}
|
27 | */
|
28 | module.exports = function isArrayLike(value) {
|
29 | return isObject(value) && isNumber(value.length) && value.length >= 0;
|
30 | };
|