Initial commit
[yaffs-website] / node_modules / grunt-contrib-watch / node_modules / globule / node_modules / lodash / flatMap.js
1 var baseFlatten = require('./_baseFlatten'),
2     map = require('./map');
3
4 /**
5  * Creates a flattened array of values by running each element in `collection`
6  * thru `iteratee` and flattening the mapped results. The iteratee is invoked
7  * with three arguments: (value, index|key, collection).
8  *
9  * @static
10  * @memberOf _
11  * @since 4.0.0
12  * @category Collection
13  * @param {Array|Object} collection The collection to iterate over.
14  * @param {Function} [iteratee=_.identity] The function invoked per iteration.
15  * @returns {Array} Returns the new flattened array.
16  * @example
17  *
18  * function duplicate(n) {
19  *   return [n, n];
20  * }
21  *
22  * _.flatMap([1, 2], duplicate);
23  * // => [1, 1, 2, 2]
24  */
25 function flatMap(collection, iteratee) {
26   return baseFlatten(map(collection, iteratee), 1);
27 }
28
29 module.exports = flatMap;