function basePickBy(object, props, predicate) {
  var index = -1,
      length = props.length,
      result = {};

  while (++index < length) {
    var key = props[index],
        value = object[key];

    if (predicate(value, key)) {
      baseAssignValue(result, key, value);
    }
  }
  return result;
}
function basePickBy(object, props, predicate) {
  var index = -1,
      length = props.length,
      result = {};

  while (++index < length) {
    var key = props[index],
        value = object[key];

    if (predicate(value, key)) {
      baseAssignValue(result, key, value);
    }
  }
  return result;
}
function basePickBy ( object , props , predicate ) { var index = - 1 , length = props . length , result = { } ; while ( ++ index < length ) { var key = props [ index ] , value = object [ key ] ; if ( predicate ( value , key ) ) { baseAssignValue ( result , key , value ) ; } } return result ; }
The base implementation of  `_.pickBy` without support for iteratee shorthands.

@private
@param {Object} object The source object.
@param {string[]} props The property identifiers to pick from.
@param {Function} predicate The function invoked per property.
@returns {Object} Returns the new object.
The base implementation of _ . pickBy without support for iteratee shorthands .