UNPKG

694 BJavaScriptView Raw
1'use strict';
2
3var 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 */
28module.exports = function isArrayLike(value) {
29 return isObject(value) && isNumber(value.length) && value.length >= 0;
30};