25 lines
572 B
TypeScript
25 lines
572 B
TypeScript
import isArray from './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]
|
|
*/
|
|
const flattenDeep = function(arr: any[], result: any[] = []): any[] {
|
|
if (!isArray(arr)) {
|
|
result.push(arr);
|
|
} else {
|
|
for (let i = 0; i < arr.length; i += 1) {
|
|
flattenDeep(arr[i], result);
|
|
}
|
|
}
|
|
return result;
|
|
};
|
|
|
|
export default flattenDeep;
|