fill.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. var baseFill = require('../internal/baseFill'),
  2. isIterateeCall = require('../internal/isIterateeCall');
  3. /**
  4. * Fills elements of `array` with `value` from `start` up to, but not
  5. * including, `end`.
  6. *
  7. * **Note:** This method mutates `array`.
  8. *
  9. * @static
  10. * @memberOf _
  11. * @category Array
  12. * @param {Array} array The array to fill.
  13. * @param {*} value The value to fill `array` with.
  14. * @param {number} [start=0] The start position.
  15. * @param {number} [end=array.length] The end position.
  16. * @returns {Array} Returns `array`.
  17. * @example
  18. *
  19. * var array = [1, 2, 3];
  20. *
  21. * _.fill(array, 'a');
  22. * console.log(array);
  23. * // => ['a', 'a', 'a']
  24. *
  25. * _.fill(Array(3), 2);
  26. * // => [2, 2, 2]
  27. *
  28. * _.fill([4, 6, 8], '*', 1, 2);
  29. * // => [4, '*', 8]
  30. */
  31. function fill(array, value, start, end) {
  32. var length = array ? array.length : 0;
  33. if (!length) {
  34. return [];
  35. }
  36. if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {
  37. start = 0;
  38. end = length;
  39. }
  40. return baseFill(array, value, start, end);
  41. }
  42. module.exports = fill;