| var arrayPush = require('./_arrayPush'), |
| baseFlatten = require('./_baseFlatten'), |
| copyArray = require('./_copyArray'), |
| isArray = require('./isArray'); |
| |
| /** |
| * Creates a new array concatenating `array` with any additional arrays |
| * and/or values. |
| * |
| * @static |
| * @memberOf _ |
| * @since 4.0.0 |
| * @category Array |
| * @param {Array} array The array to concatenate. |
| * @param {...*} [values] The values to concatenate. |
| * @returns {Array} Returns the new concatenated array. |
| * @example |
| * |
| * var array = [1]; |
| * var other = _.concat(array, 2, [3], [[4]]); |
| * |
| * console.log(other); |
| * // => [1, 2, 3, [4]] |
| * |
| * console.log(array); |
| * // => [1] |
| */ |
| function concat() { |
| var length = arguments.length; |
| if (!length) { |
| return []; |
| } |
| var args = Array(length - 1), |
| array = arguments[0], |
| index = length; |
| |
| while (index--) { |
| args[index - 1] = arguments[index]; |
| } |
| return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); |
| } |
| |
| module.exports = concat; |