vendor/optional/lodash-0.3.2.js
function pick(object) {
    var prop,
        index = 0,
        props = concat.apply(ArrayProto, arguments),
        length = props.length,
        result = {};

    // start `index` at `1` to skip `object`
    while (++index < length) {
      prop = props[index];
      if (prop in object) {
        result[prop] = object[prop];
      }
    }
    return result;
  }
function pick(object) {
    var prop,
        index = 0,
        props = concat.apply(ArrayProto, arguments),
        length = props.length,
        result = {};

    // start `index` at `1` to skip `object`
    while (++index < length) {
      prop = props[index];
      if (prop in object) {
        result[prop] = object[prop];
      }
    }
    return result;
  }
function pick ( object ) { var prop , index = 0 , props = concat . apply ( ArrayProto , arguments ) , length = props . length , result = { } ; // start `index` at `1` to skip `object` while ( ++ index < length ) { prop = props [ index ] ; if ( prop in object ) { result [ prop ] = object [ prop ] ; } } return result ; }
Creates an object composed of the specified properties. Property names may
be specified as individual arguments or as arrays of property names.

@static
@memberOf _
@category Objects
@param {Object} object The object to pluck.
@param {Object} [prop1, prop2, ...] The properties to pick.
@returns {Object} Returns an object composed of the picked properties.
@example

_.pick({ 'name': 'moe', 'age': 40, 'userid': 'moe1' }, 'name', 'age');
// => { 'name': 'moe', 'age': 40 }
Creates an object composed of the specified properties . Property names may be specified as individual arguments or as arrays of property names .