| var baseCallback = require('./baseCallback'), |
| baseForOwn = require('./baseForOwn'); |
| |
| /** |
| * Creates a function for `_.mapKeys` or `_.mapValues`. |
| * |
| * @private |
| * @param {boolean} [isMapKeys] Specify mapping keys instead of values. |
| * @returns {Function} Returns the new map function. |
| */ |
| function createObjectMapper(isMapKeys) { |
| return function(object, iteratee, thisArg) { |
| var result = {}; |
| iteratee = baseCallback(iteratee, thisArg, 3); |
| |
| baseForOwn(object, function(value, key, object) { |
| var mapped = iteratee(value, key, object); |
| key = isMapKeys ? mapped : key; |
| value = isMapKeys ? value : mapped; |
| result[key] = value; |
| }); |
| return result; |
| }; |
| } |
| |
| module.exports = createObjectMapper; |