|  | var baseFlatten = require('./_baseFlatten'); | 
|  |  | 
|  | /** Used as references for various `Number` constants. */ | 
|  | var INFINITY = 1 / 0; | 
|  |  | 
|  | /** | 
|  | * Recursively flattens `array`. | 
|  | * | 
|  | * @static | 
|  | * @memberOf _ | 
|  | * @since 3.0.0 | 
|  | * @category Array | 
|  | * @param {Array} array The array to flatten. | 
|  | * @returns {Array} Returns the new flattened array. | 
|  | * @example | 
|  | * | 
|  | * _.flattenDeep([1, [2, [3, [4]], 5]]); | 
|  | * // => [1, 2, 3, 4, 5] | 
|  | */ | 
|  | function flattenDeep(array) { | 
|  | var length = array == null ? 0 : array.length; | 
|  | return length ? baseFlatten(array, INFINITY) : []; | 
|  | } | 
|  |  | 
|  | module.exports = flattenDeep; |