code: function omit(object, predicate, thisArg) {
        if (typeof predicate == 'function') {
          predicate = lodash.createCallback(predicate, thisArg, 3);
          return pick(object, negate(predicate));
        }
        var omitProps = baseFlatten(arguments, true, false, 1),
            length = omitProps.length;
  
        while (length--) {
          omitProps[length] = String(omitProps[length]);
        }
        return pick(object, baseDifference(keysIn(object),  omitProps));
      }
docs: Creates a shallow clone of `object` excluding the specified properties.
  Property names may be specified as individual arguments or as arrays of
  property names. If a predicate is provided it will be executed for each
  property of `object` omitting the properties the predicate returns truthy
  for. The predicate is bound to `thisArg` and invoked with three arguments;
  (value, key, object).
  
  @static
  @memberOf _
  @category Objects
  @param {Object} object The source object.
  @param {Function|...string|string[]} [predicate] The function called per
  iteration or property names to omit, specified as individual property
  names or arrays of property names.
  @param {*} [thisArg] The `this` binding of `predicate`.
  @returns {Object} Returns the new object.
  @example
  
  _.omit({ 'name': 'fred', 'age': 40 }, 'age');
  // => { 'name': 'fred' }
  
  _.omit({ 'name': 'fred', 'age': 40 }, function(value) {
  return typeof value == 'number';
  });
  // => { 'name': 'fred' }