UNPKG

ts-flatten-array

Version:
37 lines (36 loc) 1.24 kB
"use strict"; /** * @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;