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