26 lines
646 B
JavaScript
26 lines
646 B
JavaScript
var isArray = require('../type/is-array');
|
|
|
|
/**
|
|
* Flattens `array` a single level deep.
|
|
*
|
|
* @param {Array} arr The array to flatten.
|
|
* @param {Array} result The array to return.
|
|
* @return {Array} Returns the new flattened array.
|
|
* @example
|
|
*
|
|
* flattenDeep([1, [2, [3, [4]], 5]]); // => [1, 2, 3, 4, 5]
|
|
*/
|
|
var flattenDeep = function flattenDeep(arr) {
|
|
var result = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
|
|
if (!isArray(arr)) {
|
|
result.push(arr);
|
|
} else {
|
|
for (var i = 0; i < arr.length; i += 1) {
|
|
flattenDeep(arr[i], result);
|
|
}
|
|
}
|
|
return result;
|
|
};
|
|
|
|
module.exports = flattenDeep; |