time-to-botec

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

flatMapDeep.js (796B)


      1 var baseFlatten = require('./_baseFlatten'),
      2     map = require('./map');
      3 
      4 /** Used as references for various `Number` constants. */
      5 var INFINITY = 1 / 0;
      6 
      7 /**
      8  * This method is like `_.flatMap` except that it recursively flattens the
      9  * mapped results.
     10  *
     11  * @static
     12  * @memberOf _
     13  * @since 4.7.0
     14  * @category Collection
     15  * @param {Array|Object} collection The collection to iterate over.
     16  * @param {Function} [iteratee=_.identity] The function invoked per iteration.
     17  * @returns {Array} Returns the new flattened array.
     18  * @example
     19  *
     20  * function duplicate(n) {
     21  *   return [[[n, n]]];
     22  * }
     23  *
     24  * _.flatMapDeep([1, 2], duplicate);
     25  * // => [1, 1, 2, 2]
     26  */
     27 function flatMapDeep(collection, iteratee) {
     28   return baseFlatten(map(collection, iteratee), INFINITY);
     29 }
     30 
     31 module.exports = flatMapDeep;