You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
787 B
33 lines
787 B
var baseFlatten = require('./_baseFlatten'), |
|
toInteger = require('./toInteger'); |
|
|
|
/** |
|
* Recursively flatten `array` up to `depth` times. |
|
* |
|
* @static |
|
* @memberOf _ |
|
* @since 4.4.0 |
|
* @category Array |
|
* @param {Array} array The array to flatten. |
|
* @param {number} [depth=1] The maximum recursion depth. |
|
* @returns {Array} Returns the new flattened array. |
|
* @example |
|
* |
|
* var array = [1, [2, [3, [4]], 5]]; |
|
* |
|
* _.flattenDepth(array, 1); |
|
* // => [1, 2, [3, [4]], 5] |
|
* |
|
* _.flattenDepth(array, 2); |
|
* // => [1, 2, 3, [4], 5] |
|
*/ |
|
function flattenDepth(array, depth) { |
|
var length = array == null ? 0 : array.length; |
|
if (!length) { |
|
return []; |
|
} |
|
depth = depth === undefined ? 1 : toInteger(depth); |
|
return baseFlatten(array, depth); |
|
} |
|
|
|
module.exports = flattenDepth;
|
|
|