code: function pick(object) {
      var index = -1,
          props = baseFlatten(arguments, true, false, 1),
          length = props.length,
          result = {};
  
      while (++index < length) {
        var key = props[index];
        if (key in object) {
          result[key] = object[key];
        }
      }
      return result;
    }
docs: Creates a shallow clone of `object` composed of the specified properties.
  Property names may be specified as individual arguments or as arrays of
  property names. If a callback is provided it will be executed for each
  property of `object` picking the properties the callback returns truey
  for. The callback 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[]} [callback] The function called per
  iteration or property names to pick, specified as individual property
  names or arrays of property names.
  @param {*} [thisArg] The `this` binding of `callback`.
  @returns {Object} Returns an object composed of the picked properties.
  @example
  
  _.pick({ 'name': 'fred', '_userid': 'fred1' }, 'name');
  // => { 'name': 'fred' }
  
  _.pick({ 'name': 'fred', '_userid': 'fred1' }, function(value, key) {
  return key.charAt(0) != '_';
  });
  // => { 'name': 'fred' }