The Wayback Machine - https://web.archive.org/web/20170626180948/https://github.com/lodash/lodash/blob/master/keyBy.js
Skip to content
Permalink
Fetching contributors…
Cannot retrieve contributors at this time
33 lines (30 sloc) 1.06 KB
import baseAssignValue from './.internal/baseAssignValue.js'
import reduce from './reduce.js'
/**
* Creates an object composed of keys generated from the results of running
* each element of `collection` thru `iteratee`. The corresponding value of
* each key is the last element responsible for generating the key. The
* iteratee is invoked with one argument: (value).
*
* @since 4.0.0
* @category Collection
* @param {Array|Object} collection The collection to iterate over.
* @param {Function} iteratee The iteratee to transform keys.
* @returns {Object} Returns the composed aggregate object.
* @see groupBy, partition
* @example
*
* const array = [
* { 'dir': 'left', 'code': 97 },
* { 'dir': 'right', 'code': 100 }
* ]
*
* keyBy(array, ({ code }) => String.fromCharCode(code))
* // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }
*/
function keyBy(collection, iteratee) {
return reduce(collection, (result, value, key) => (
baseAssignValue(result, iteratee(value), value), result
), {})
}
export default keyBy
You can't perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.