wrapperConcat.js 931 B

12345678910111213141516171819202122232425262728293031323334
  1. var arrayConcat = require('../internal/arrayConcat'),
  2. baseFlatten = require('../internal/baseFlatten'),
  3. isArray = require('../lang/isArray'),
  4. restParam = require('../function/restParam'),
  5. toObject = require('../internal/toObject');
  6. /**
  7. * Creates a new array joining a wrapped array with any additional arrays
  8. * and/or values.
  9. *
  10. * @name concat
  11. * @memberOf _
  12. * @category Chain
  13. * @param {...*} [values] The values to concatenate.
  14. * @returns {Array} Returns the new concatenated array.
  15. * @example
  16. *
  17. * var array = [1];
  18. * var wrapped = _(array).concat(2, [3], [[4]]);
  19. *
  20. * console.log(wrapped.value());
  21. * // => [1, 2, 3, [4]]
  22. *
  23. * console.log(array);
  24. * // => [1]
  25. */
  26. var wrapperConcat = restParam(function(values) {
  27. values = baseFlatten(values);
  28. return this.thru(function(array) {
  29. return arrayConcat(isArray(array) ? array : [toObject(array)], values);
  30. });
  31. });
  32. module.exports = wrapperConcat;