You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
import baseFill from './_baseFill.js'; |
|
import isIterateeCall from './_isIterateeCall.js'; |
|
|
|
/** |
|
* Fills elements of `array` with `value` from `start` up to, but not |
|
* including, `end`. |
|
* |
|
* **Note:** This method mutates `array`. |
|
* |
|
* @static |
|
* @memberOf _ |
|
* @since 3.2.0 |
|
* @category Array |
|
* @param {Array} array The array to fill. |
|
* @param {*} value The value to fill `array` with. |
|
* @param {number} [start=0] The start position. |
|
* @param {number} [end=array.length] The end position. |
|
* @returns {Array} Returns `array`. |
|
* @example |
|
* |
|
* var array = [1, 2, 3]; |
|
* |
|
* _.fill(array, 'a'); |
|
* console.log(array); |
|
* // => ['a', 'a', 'a'] |
|
* |
|
* _.fill(Array(3), 2); |
|
* // => [2, 2, 2] |
|
* |
|
* _.fill([4, 6, 8, 10], '*', 1, 3); |
|
* // => [4, '*', '*', 10] |
|
*/ |
|
function fill(array, value, start, end) { |
|
var length = array == null ? 0 : array.length; |
|
if (!length) { |
|
return []; |
|
} |
|
if (start && typeof start != 'number' && isIterateeCall(array, value, start)) { |
|
start = 0; |
|
end = length; |
|
} |
|
return baseFill(array, value, start, end); |
|
} |
|
|
|
export default fill;
|
|
|