swc/crates/swc_bundler/tests/.cache/deno/5ddc4c85386767e41a8f90bf55cf6321126796aa.ts

37 lines
1013 B
TypeScript
Raw Normal View History

// Loaded from https://deno.land/x/ramda@v0.27.2/source/mapObjIndexed.js
import _curry2 from './internal/_curry2.js';
import _reduce from './internal/_reduce.js';
import keys from './keys.js';
/**
* An Object-specific version of [`map`](#map). The function is applied to three
* arguments: *(value, key, obj)*. If only the value is significant, use
* [`map`](#map) instead.
*
* @func
* @memberOf R
* @since v0.9.0
* @category Object
* @sig ((*, String, Object) -> *) -> Object -> Object
* @param {Function} fn
* @param {Object} obj
* @return {Object}
* @see R.map
* @example
*
* const xyz = { x: 1, y: 2, z: 3 };
* const prependKeyAndDouble = (num, key, obj) => key + (num * 2);
*
* R.mapObjIndexed(prependKeyAndDouble, xyz); //=> { x: 'x2', y: 'y4', z: 'z6' }
*/
var mapObjIndexed = _curry2(function mapObjIndexed(fn, obj) {
return _reduce(function(acc, key) {
acc[key] = fn(obj[key], key, obj);
return acc;
}, {}, keys(obj));
});
export default mapObjIndexed;