UNPKG

787 BJavaScriptView Raw
1var baseFlatten = require('./_baseFlatten'),
2 toInteger = require('./toInteger');
3
4/**
5 * Recursively flatten `array` up to `depth` times.
6 *
7 * @static
8 * @memberOf _
9 * @since 4.4.0
10 * @category Array
11 * @param {Array} array The array to flatten.
12 * @param {number} [depth=1] The maximum recursion depth.
13 * @returns {Array} Returns the new flattened array.
14 * @example
15 *
16 * var array = [1, [2, [3, [4]], 5]];
17 *
18 * _.flattenDepth(array, 1);
19 * // => [1, 2, [3, [4]], 5]
20 *
21 * _.flattenDepth(array, 2);
22 * // => [1, 2, 3, [4], 5]
23 */
24function flattenDepth(array, depth) {
25 var length = array == null ? 0 : array.length;
26 if (!length) {
27 return [];
28 }
29 depth = depth === undefined ? 1 : toInteger(depth);
30 return baseFlatten(array, depth);
31}
32
33module.exports = flattenDepth;