time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

_basePickBy.js (791B)


      1 var baseGet = require('./_baseGet'),
      2     baseSet = require('./_baseSet'),
      3     castPath = require('./_castPath');
      4 
      5 /**
      6  * The base implementation of  `_.pickBy` without support for iteratee shorthands.
      7  *
      8  * @private
      9  * @param {Object} object The source object.
     10  * @param {string[]} paths The property paths to pick.
     11  * @param {Function} predicate The function invoked per property.
     12  * @returns {Object} Returns the new object.
     13  */
     14 function basePickBy(object, paths, predicate) {
     15   var index = -1,
     16       length = paths.length,
     17       result = {};
     18 
     19   while (++index < length) {
     20     var path = paths[index],
     21         value = baseGet(object, path);
     22 
     23     if (predicate(value, path)) {
     24       baseSet(result, castPath(path, object), value);
     25     }
     26   }
     27   return result;
     28 }
     29 
     30 module.exports = basePickBy;