UNPKG

moltres-utils

Version:
65 lines (51 loc) 1.62 kB
"use strict"; require("core-js/modules/es6.object.define-property"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _isArray = _interopRequireDefault(require("./isArray")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var shallowFlatten = function shallowFlatten(list, recur) { var result = []; var ilen = list.length; var idx = 0; while (idx < ilen) { var item = list[idx]; if ((0, _isArray.default)(item) && list !== item) { var value = recur ? recur(item, recur) : item; var idxj = 0; var jlen = value.length; while (idxj < jlen) { result[result.length] = value[idxj]; idxj += 1; } } else { result[result.length] = list[idx]; } idx += 1; } return result; }; /** * Returns a new array by pulling every item out of it (and all its sub-arrays) and putting them in a new array, depth-first. * * @function * @since v0.0.13 * @category lang * @param {Array} array The array to consider. * @returns {Array} The flattened list. * @example * * arrayFlatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]) * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] */ var arrayFlatten = function arrayFlatten(array) { if (!(0, _isArray.default)(array)) { throw new TypeError("arrayFlatten method expected 'array' to be an Array. Instead it received ".concat(array)); } return shallowFlatten(array, shallowFlatten); }; var _default = arrayFlatten; exports.default = _default; //# sourceMappingURL=arrayFlatten.js.map