UNPKG

lodash-es

Version:

The modern build of lodash exported as ES modules.

48 lines (45 loc) 1.2 kB
import isArguments from './isArguments'; import isArray from './isArray'; import isArrayLike from '../internal/isArrayLike'; import isFunction from './isFunction'; import isObjectLike from '../internal/isObjectLike'; import isString from './isString'; import keys from '../object/keys'; /** * Checks if `value` is empty. A value is considered empty unless it's an * `arguments` object, array, string, or jQuery-like collection with a length * greater than `0` or an object with own enumerable properties. * * @static * @memberOf _ * @category Lang * @param {Array|Object|string} value The value to inspect. * @returns {boolean} Returns `true` if `value` is empty, else `false`. * @example * * _.isEmpty(null); * // => true * * _.isEmpty(true); * // => true * * _.isEmpty(1); * // => true * * _.isEmpty([1, 2, 3]); * // => false * * _.isEmpty({ 'a': 1 }); * // => false */ function isEmpty(value) { if (value == null) { return true; } if (isArrayLike(value) && (isArray(value) || isString(value) || isArguments(value) || (isObjectLike(value) && isFunction(value.splice)))) { return !value.length; } return !keys(value).length; } export default isEmpty;