Bump to v4.1.0.

This commit is contained in:
John-David Dalton
2016-01-28 01:16:24 -08:00
parent 629caa8340
commit 7293d39642
435 changed files with 838 additions and 565 deletions

View File

@@ -1,22 +1,14 @@
define(['./internal/arrayReduce', './keys'], function(arrayReduce, keys) {
/** Used for built-in method references. */
var objectProto = Object.prototype;
/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;
define(['./constant', './_createInverter', './identity'], function(constant, createInverter, identity) {
/**
* Creates an object composed of the inverted keys and values of `object`.
* If `object` contains duplicate values, subsequent values overwrite property
* assignments of previous values unless `multiVal` is `true`.
* assignments of previous values.
*
* @static
* @memberOf _
* @category Object
* @param {Object} object The object to invert.
* @param {boolean} [multiVal] Allow multiple values per key.
* @param- {Object} [guard] Enables use as an iteratee for functions like `_.map`.
* @returns {Object} Returns the new inverted object.
* @example
*
@@ -24,27 +16,10 @@ define(['./internal/arrayReduce', './keys'], function(arrayReduce, keys) {
*
* _.invert(object);
* // => { '1': 'c', '2': 'b' }
*
* // with `multiVal`
* _.invert(object, true);
* // => { '1': ['a', 'c'], '2': ['b'] }
*/
function invert(object, multiVal, guard) {
return arrayReduce(keys(object), function(result, key) {
var value = object[key];
if (multiVal && !guard) {
if (hasOwnProperty.call(result, value)) {
result[value].push(key);
} else {
result[value] = [key];
}
}
else {
result[value] = key;
}
return result;
}, {});
}
var invert = createInverter(function(result, value, key) {
result[value] = key;
}, constant(identity));
return invert;
});