1 var isArguments = require('./isArguments'),
2 isArray = require('./isArray'),
3 isArrayLike = require('../internal/isArrayLike'),
4 isFunction = require('./isFunction'),
5 isObjectLike = require('../internal/isObjectLike'),
6 isString = require('./isString'),
7 keys = require('../object/keys');
10 * Checks if `value` is empty. A value is considered empty unless it's an
11 * `arguments` object, array, string, or jQuery-like collection with a length
12 * greater than `0` or an object with own enumerable properties.
17 * @param {Array|Object|string} value The value to inspect.
18 * @returns {boolean} Returns `true` if `value` is empty, else `false`.
30 * _.isEmpty([1, 2, 3]);
33 * _.isEmpty({ 'a': 1 });
36 function isEmpty(value) {
40 if (isArrayLike(value) && (isArray(value) || isString(value) || isArguments(value) ||
41 (isObjectLike(value) && isFunction(value.splice)))) {
44 return !keys(value).length;
47 module.exports = isEmpty;