UNPKG

foop

Version:

interfaces that describe their intentions.

45 lines (38 loc) 4.04 kB
var isArray = require('../../is/array') var objOrArrayKeys = require('../../util/keysObjOrArray') var curry = require('../../fp/curry') /** * Creates an array of values by running each property of `object` * or index of `array` thru `iteratee`. * The iteratee is invoked with three arguments: (value, key, object). * * @alias mapAnyVals * @memberOf loop * @since 5.0.0 * @category Object * * @param {Object|Array} obj The object or array to iterate over. * @param {Function} predicate The function invoked per iteration. * @param {Object} [result = {}] initial value, accumulated, output * @return {Array|Object} Returns the new mapped array or object * * @example * * const square = n => n * n * map({ 'a': 4, 'b': 8 }, square) * //=> [16, 64] (iteration order is not guaranteed) * */ function mapObjOrArrayVals(obj, iteratee, result) { if ( result === void 0 ) result = {}; var isArrayObj = isArray(obj) var keys = objOrArrayKeys(obj) for (var index = 0; index < keys.length; index++) { var key = isArrayObj ? index : keys[index] var value = obj[key] result[key] = iteratee(value, key, obj) } return result } module.exports = curry(2, mapObjOrArrayVals) //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwT2JqT3JBcnJheVZhbHMuanMiLCJzb3VyY2VzIjpbIm1hcE9iak9yQXJyYXlWYWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzQXJyYXkgPSByZXF1aXJlKCcuLi8uLi9pcy9hcnJheScpXG5jb25zdCBvYmpPckFycmF5S2V5cyA9IHJlcXVpcmUoJy4uLy4uL3V0aWwva2V5c09iak9yQXJyYXknKVxuY29uc3QgY3VycnkgPSByZXF1aXJlKCcuLi8uLi9mcC9jdXJyeScpXG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhcnJheSBvZiB2YWx1ZXMgYnkgcnVubmluZyBlYWNoIHByb3BlcnR5IG9mIGBvYmplY3RgXG4gKiBvciBpbmRleCBvZiBgYXJyYXlgIHRocnUgYGl0ZXJhdGVlYC5cbiAqIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkIHdpdGggdGhyZWUgYXJndW1lbnRzOiAodmFsdWUsIGtleSwgb2JqZWN0KS5cbiAqXG4gKiBAYWxpYXMgbWFwQW55VmFsc1xuICogQG1lbWJlck9mIGxvb3BcbiAqIEBzaW5jZSA1LjAuMFxuICogQGNhdGVnb3J5IE9iamVjdFxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fEFycmF5fSBvYmogVGhlIG9iamVjdCBvciBhcnJheSB0byBpdGVyYXRlIG92ZXIuXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBwcmVkaWNhdGUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbcmVzdWx0ID0ge31dIGluaXRpYWwgdmFsdWUsIGFjY3VtdWxhdGVkLCBvdXRwdXRcbiAqIEByZXR1cm4ge0FycmF5fE9iamVjdH0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBhcnJheSBvciBvYmplY3RcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgY29uc3Qgc3F1YXJlID0gbiA9PiBuICogblxuICogICBtYXAoeyAnYSc6IDQsICdiJzogOCB9LCBzcXVhcmUpXG4gKiAgIC8vPT4gWzE2LCA2NF0gKGl0ZXJhdGlvbiBvcmRlciBpcyBub3QgZ3VhcmFudGVlZClcbiAqXG4gKi9cbmZ1bmN0aW9uIG1hcE9iak9yQXJyYXlWYWxzKG9iaiwgaXRlcmF0ZWUsIHJlc3VsdCA9IHt9KSB7XG4gIGNvbnN0IGlzQXJyYXlPYmogPSBpc0FycmF5KG9iailcbiAgY29uc3Qga2V5cyA9IG9iak9yQXJyYXlLZXlzKG9iailcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwga2V5cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICBjb25zdCBrZXkgPSBpc0FycmF5T2JqID8gaW5kZXggOiBrZXlzW2luZGV4XVxuICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV1cblxuICAgIHJlc3VsdFtrZXldID0gaXRlcmF0ZWUodmFsdWUsIGtleSwgb2JqKVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGN1cnJ5KDIsIG1hcE9iak9yQXJyYXlWYWxzKVxuIl0sIm5hbWVzIjpbImNvbnN0IiwibGV0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7QUFDekNBLEdBQUssQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLDJCQUEyQixDQUFDO0FBQzNEQSxHQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0J2QyxTQUFTLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBVyxFQUFFLENBQVA7aUNBQUEsR0FBRyxFQUFFO0FBQUc7RUFDdERBLEdBQUssQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztFQUMvQkEsR0FBSyxDQUFDLElBQUksR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDOztFQUVoQyxLQUFLQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtJQUNoREQsR0FBSyxDQUFDLEdBQUcsR0FBRyxVQUFVLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDNUNBLEdBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQzs7SUFFdEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztHQUN4Qzs7RUFFRCxPQUFPLE1BQU07Q0FDZDs7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsaUJBQWlCLENBQUM7In0=