UNPKG

foop

Version:

interfaces that describe their intentions.

44 lines (40 loc) 3.68 kB
var ObjectKeys = require('../../util/keys') var toObj = require('../../cast/toObj') /** * The opposite of `mapValue` this method creates an object with the * same values as `object` and keys generated by running each own enumerable * string keyed property of `object` thru `iteratee`. The iteratee is invoked * with three arguments: (value, key, object). * @since 5.0.0-beta.6 * @memberOf loop * @alias mapObjKeys * * @param {Object} object The object to iterate over. * @param {Function} iteratee The function invoked per iteration. * @return {Object} Returns the new mapped object. * * @fork 3.8.0 * @category Object * * @see mapValue * * @example * * var concatKey = (value, key) => key + value) * mapKey({ 'a': 1, 'b': 2 }, concatKey) * //=> { 'a1': 1, 'b2': 2 } * */ function mapObjKey(object, iteratee) { var obj = toObj(object) var result = {} var keys = ObjectKeys(obj) for (var i = 0; i < keys.length; i++) { var key = keys[i] var value = obj[key] result[iteratee(value, key, obj)] = value } return result } module.exports = mapObjKey //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwT2JqS2V5cy5qcyIsInNvdXJjZXMiOlsibWFwT2JqS2V5cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBPYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vLi4vdXRpbC9rZXlzJylcbmNvbnN0IHRvT2JqID0gcmVxdWlyZSgnLi4vLi4vY2FzdC90b09iaicpXG5cbi8qKlxuICogVGhlIG9wcG9zaXRlIG9mIGBtYXBWYWx1ZWAgdGhpcyBtZXRob2QgY3JlYXRlcyBhbiBvYmplY3Qgd2l0aCB0aGVcbiAqIHNhbWUgdmFsdWVzIGFzIGBvYmplY3RgIGFuZCBrZXlzIGdlbmVyYXRlZCBieSBydW5uaW5nIGVhY2ggb3duIGVudW1lcmFibGVcbiAqIHN0cmluZyBrZXllZCBwcm9wZXJ0eSBvZiBgb2JqZWN0YCB0aHJ1IGBpdGVyYXRlZWAuIFRoZSBpdGVyYXRlZSBpcyBpbnZva2VkXG4gKiB3aXRoIHRocmVlIGFyZ3VtZW50czogKHZhbHVlLCBrZXksIG9iamVjdCkuXG4gKiBAc2luY2UgNS4wLjAtYmV0YS42XG4gKiBAbWVtYmVyT2YgbG9vcFxuICogQGFsaWFzIG1hcE9iaktleXNcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb2JqZWN0IFRoZSBvYmplY3QgdG8gaXRlcmF0ZSBvdmVyLlxuICogQHBhcmFtIHtGdW5jdGlvbn0gaXRlcmF0ZWUgVGhlIGZ1bmN0aW9uIGludm9rZWQgcGVyIGl0ZXJhdGlvbi5cbiAqIEByZXR1cm4ge09iamVjdH0gUmV0dXJucyB0aGUgbmV3IG1hcHBlZCBvYmplY3QuXG4gKlxuICogQGZvcmsgMy44LjBcbiAqIEBjYXRlZ29yeSBPYmplY3RcbiAqXG4gKiBAc2VlIG1hcFZhbHVlXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgIHZhciBjb25jYXRLZXkgPSAodmFsdWUsIGtleSkgPT4ga2V5ICsgdmFsdWUpXG4gKiAgIG1hcEtleSh7ICdhJzogMSwgJ2InOiAyIH0sIGNvbmNhdEtleSlcbiAqICAgLy89PiB7ICdhMSc6IDEsICdiMic6IDIgfVxuICpcbiAqL1xuZnVuY3Rpb24gbWFwT2JqS2V5KG9iamVjdCwgaXRlcmF0ZWUpIHtcbiAgY29uc3Qgb2JqID0gdG9PYmoob2JqZWN0KVxuICBjb25zdCByZXN1bHQgPSB7fVxuXG4gIGNvbnN0IGtleXMgPSBPYmplY3RLZXlzKG9iailcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3Qga2V5ID0ga2V5c1tpXVxuICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV1cbiAgICByZXN1bHRbaXRlcmF0ZWUodmFsdWUsIGtleSwgb2JqKV0gPSB2YWx1ZVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBtYXBPYmpLZXlcbiJdLCJuYW1lcyI6WyJjb25zdCIsImxldCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0FBQzdDQSxHQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMkJ6QyxTQUFTLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO0VBQ25DQSxHQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7RUFDekJBLEdBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRTs7RUFFakJBLEdBQUssQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQztFQUM1QixLQUFLQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUNwQ0QsR0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ25CQSxHQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDdEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSztHQUMxQztFQUNELE9BQU8sTUFBTTtDQUNkOztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUzsifQ==