ts-flatten-array
Version:
Array Flatten with Typescript
37 lines (36 loc) • 1.24 kB
JavaScript
;
/**
* @title Flatten Array in Typescript
* @author Safa Selim
* @date 02.27.22
*/
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.flattenArray = void 0;
/**
* Flattens the nested arrays to one single array.
* @function flattenArray
* @param inputArray NestedArray<T>
* @returns Array<T>
*/
function flattenArray(inputArray) {
if (!Array.isArray(inputArray))
return inputArray ? [inputArray] : [];
if (!(inputArray instanceof Array))
return [];
return inputArray.reduce(function (acc, item) {
if (Array.isArray(item)) {
return __spreadArray(__spreadArray([], acc, true), flattenArray(item), true);
}
return __spreadArray(__spreadArray([], acc, true), [item], false);
}, []);
}
exports.flattenArray = flattenArray;