time-to-botec

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

_createBaseFor.js (648B)


      1 /**
      2  * Creates a base function for methods like `_.forIn` and `_.forOwn`.
      3  *
      4  * @private
      5  * @param {boolean} [fromRight] Specify iterating from right to left.
      6  * @returns {Function} Returns the new base function.
      7  */
      8 function createBaseFor(fromRight) {
      9   return function(object, iteratee, keysFunc) {
     10     var index = -1,
     11         iterable = Object(object),
     12         props = keysFunc(object),
     13         length = props.length;
     14 
     15     while (length--) {
     16       var key = props[fromRight ? length : ++index];
     17       if (iteratee(iterable[key], key, iterable) === false) {
     18         break;
     19       }
     20     }
     21     return object;
     22   };
     23 }
     24 
     25 module.exports = createBaseFor;