| var baseGet = require('./_baseGet'), | |
|     baseSet = require('./_baseSet'), | |
|     castPath = require('./_castPath'); | |
| 
 | |
| /** | |
|  * The base implementation of  `_.pickBy` without support for iteratee shorthands. | |
|  * | |
|  * @private | |
|  * @param {Object} object The source object. | |
|  * @param {string[]} paths The property paths to pick. | |
|  * @param {Function} predicate The function invoked per property. | |
|  * @returns {Object} Returns the new object. | |
|  */ | |
| function basePickBy(object, paths, predicate) { | |
|   var index = -1, | |
|       length = paths.length, | |
|       result = {}; | |
| 
 | |
|   while (++index < length) { | |
|     var path = paths[index], | |
|         value = baseGet(object, path); | |
| 
 | |
|     if (predicate(value, path)) { | |
|       baseSet(result, castPath(path, object), value); | |
|     } | |
|   } | |
|   return result; | |
| } | |
| 
 | |
| module.exports = basePickBy;
 |