| /** |
| * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/> |
| * Build: `lodash modularize exports="node" -o ./compat/` |
| * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/> |
| * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE> |
| * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors |
| * Available under MIT license <http://lodash.com/license> |
| */ |
| var baseCreateCallback = require('../internals/baseCreateCallback'); |
| |
| /** |
| * Executes the callback `n` times, returning an array of the results |
| * of each callback execution. The callback is bound to `thisArg` and invoked |
| * with one argument; (index). |
| * |
| * @static |
| * @memberOf _ |
| * @category Utilities |
| * @param {number} n The number of times to execute the callback. |
| * @param {Function} callback The function called per iteration. |
| * @param {*} [thisArg] The `this` binding of `callback`. |
| * @returns {Array} Returns an array of the results of each `callback` execution. |
| * @example |
| * |
| * var diceRolls = _.times(3, _.partial(_.random, 1, 6)); |
| * // => [3, 6, 4] |
| * |
| * _.times(3, function(n) { mage.castSpell(n); }); |
| * // => calls `mage.castSpell(n)` three times, passing `n` of `0`, `1`, and `2` respectively |
| * |
| * _.times(3, function(n) { this.cast(n); }, mage); |
| * // => also calls `mage.castSpell(n)` three times |
| */ |
| function times(n, callback, thisArg) { |
| n = (n = +n) > -1 ? n : 0; |
| var index = -1, |
| result = Array(n); |
| |
| callback = baseCreateCallback(callback, thisArg, 1); |
| while (++index < n) { |
| result[index] = callback(index); |
| } |
| return result; |
| } |
| |
| module.exports = times; |