You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
931 B
JavaScript
35 lines
931 B
JavaScript
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;
|