function isEmpty(value) {
      if (value == null) {
        return true;
      }
      var length = value.length;
      if (isLength(length) && (isArray(value) || isString(value) || isArguments(value) ||
          (typeof value == 'object' && isFunction(value.splice)))) {
        return !length;
      }
      return !keys(value).length;
    }
Checks if a collection is empty. A value is considered empty unless it is
an array-like value 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