Skip to main content
Module

x/ramda/invertObj.js

:ram: Practical functional Javascript
Very Popular
Go to Latest
File
import _curry1 from './internal/_curry1';import keys from './keys';

/** * Returns a new object with the keys of the given object as values, and the * values of the given object, which are coerced to strings, as keys. Note * that the last key found is preferred when handling the same value. * * @func * @memberOf R * @since v0.9.0 * @category Object * @sig {s: x} -> {x: s} * @param {Object} obj The object or array to invert * @return {Object} out A new object * @see R.invert * @example * * const raceResults = { * first: 'alice', * second: 'jake' * }; * R.invertObj(raceResults); * //=> { 'alice': 'first', 'jake':'second' } * * // Alternatively: * const raceResults = ['alice', 'jake']; * R.invertObj(raceResults); * //=> { 'alice': '0', 'jake':'1' } */var invertObj = _curry1(function invertObj(obj) { var props = keys(obj); var len = props.length; var idx = 0; var out = {};
while (idx < len) { var key = props[idx]; out[obj[key]] = key; idx += 1; } return out;});export default invertObj;