@newdash/newdash
Version:
javascript/typescript utility library
46 lines (45 loc) • 1.35 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.concat = void 0;
const baseFlatten_1 = __importDefault(require("./.internal/baseFlatten"));
const copyArray_1 = __importDefault(require("./.internal/copyArray"));
const arrayPush_1 = __importDefault(require("./.internal/arrayPush"));
const isArray_1 = __importDefault(require("./isArray"));
/**
* Creates a new array concatenating `array` with any additional arrays
* and/or values.
*
* @since 5.0.0
* @category Array
* @returns Returns the new concatenated array.
* @example
*
* ```js
* var array = [1];
* var other = concat(array, 2, [3], [[4]]);
*
* console.log(other);
* // => [1, 2, 3, [4]]
*
* console.log(array);
* // => [1]
* ```
*/
function concat(...arrays) {
const length = arrays.length;
if (!length) {
return [];
}
const args = Array(length - 1);
const array = arrays[0];
let index = length;
while (index--) {
args[index - 1] = arrays[index];
}
return (0, arrayPush_1.default)((0, isArray_1.default)(array) ? (0, copyArray_1.default)(array) : [array], (0, baseFlatten_1.default)(args, 1));
}
exports.concat = concat;
exports.default = concat;