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;
34