foop
Version:
interfaces that describe their intentions.
42 lines (38 loc) • 3.23 kB
JavaScript
var size = require('../../util/size')
var preAllocate = require('../../array/preAllocate')
/**
* Creates an array of values by running each element of `array` thru `iteratee`.
* The iteratee is invoked with three arguments: (value, index, array).
* @memberOf loop
* @since 5.0.0-beta.6
*
* @name mapArray
* @alias mapArrayVals
*
* @param {Array} array The array to iterate over.
* @param {Function} iteratee The function invoked per iteration.
* @return {Array} Returns the new mapped array.
*
* @category Array
*
* {@link https://github.com/lodash/lodash/blob/master/map.js lodash-map}
* @see {@link lodash-map}
*
* @example
*
* const square = n => n * n
* mapArray([4, 8], square)
* //=> [16, 64]
*
*/
function mapArray(array, iteratee) {
var index = -1
var length = size(array)
var result = preAllocate(length)
while (++index < length) {
result[index] = iteratee(array[index], index, array)
}
return result
}
module.exports = mapArray
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwQXJyYXkuanMiLCJzb3VyY2VzIjpbIm1hcEFycmF5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHNpemUgPSByZXF1aXJlKCcuLi8uLi91dGlsL3NpemUnKVxuY29uc3QgcHJlQWxsb2NhdGUgPSByZXF1aXJlKCcuLi8uLi9hcnJheS9wcmVBbGxvY2F0ZScpXG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB2YWx1ZXMgYnkgcnVubmluZyBlYWNoIGVsZW1lbnQgb2YgYGFycmF5YCB0aHJ1IGBpdGVyYXRlZWAuXG4gKiBUaGUgaXRlcmF0ZWUgaXMgaW52b2tlZCB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBpbmRleCwgYXJyYXkpLlxuICogQG1lbWJlck9mIGxvb3BcbiAqIEBzaW5jZSA1LjAuMC1iZXRhLjZcbiAqXG4gKiBAbmFtZSBtYXBBcnJheVxuICogQGFsaWFzIG1hcEFycmF5VmFsc1xuICpcbiAqIEBwYXJhbSB7QXJyYXl9IGFycmF5IFRoZSBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBpdGVyYXRlZSBUaGUgZnVuY3Rpb24gaW52b2tlZCBwZXIgaXRlcmF0aW9uLlxuICogQHJldHVybiB7QXJyYXl9IFJldHVybnMgdGhlIG5ldyBtYXBwZWQgYXJyYXkuXG4gKlxuICogQGNhdGVnb3J5IEFycmF5XG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9sb2Rhc2gvbG9kYXNoL2Jsb2IvbWFzdGVyL21hcC5qcyBsb2Rhc2gtbWFwfVxuICogQHNlZSB7QGxpbmsgbG9kYXNoLW1hcH1cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgY29uc3Qgc3F1YXJlID0gbiA9PiBuICogblxuICogICBtYXBBcnJheShbNCwgOF0sIHNxdWFyZSlcbiAqICAgLy89PiBbMTYsIDY0XVxuICpcbiAqL1xuZnVuY3Rpb24gbWFwQXJyYXkoYXJyYXksIGl0ZXJhdGVlKSB7XG4gIGxldCBpbmRleCA9IC0xXG4gIGNvbnN0IGxlbmd0aCA9IHNpemUoYXJyYXkpXG4gIGNvbnN0IHJlc3VsdCA9IHByZUFsbG9jYXRlKGxlbmd0aClcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHJlc3VsdFtpbmRleF0gPSBpdGVyYXRlZShhcnJheVtpbmRleF0sIGluZGV4LCBhcnJheSlcbiAgfVxuICByZXR1cm4gcmVzdWx0XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFwQXJyYXlcbiJdLCJuYW1lcyI6WyJjb25zdCIsImxldCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0FBQ3ZDQSxHQUFLLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMkJ0RCxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO0VBQ2pDQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztFQUNkRCxHQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7RUFDMUJBLEdBQUssQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQzs7RUFFbEMsT0FBTyxFQUFFLEtBQUssR0FBRyxNQUFNLEVBQUU7SUFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztHQUNyRDtFQUNELE9BQU8sTUFBTTtDQUNkOztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsUUFBUTsifQ==