moltres-utils
Version:
Utils for Moltres apps
65 lines (51 loc) • 1.62 kB
JavaScript
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
;