var arrayConcat = require('../internal/arrayConcat'), baseFlatten = require('../internal/baseFlatten'), isArray = require('../lang/isArray'), restParam = require('../function/restParam'), toObject = require('../internal/toObject'); /** * Creates a new array joining a wrapped array with any additional arrays * and/or values. * * @name concat * @memberOf _ * @category Chain * @param {...*} [values] The values to concatenate. * @returns {Array} Returns the new concatenated array. * @example * * var array = [1]; * var wrapped = _(array).concat(2, [3], [[4]]); * * console.log(wrapped.value()); * // => [1, 2, 3, [4]] * * console.log(array); * // => [1] */ var wrapperConcat = restParam(function(values) { values = baseFlatten(values); return this.thru(function(array) { return arrayConcat(isArray(array) ? array : [toObject(array)], values); }); }); module.exports = wrapperConcat;