mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-05 17:37:50 +00:00
Update builds and docs, replacing passed with provided.
Former-commit-id: 30114421fcb5853097c0992cd4125aa25ede6853
This commit is contained in:
373
dist/lodash.underscore.js
vendored
373
dist/lodash.underscore.js
vendored
@@ -77,7 +77,7 @@
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* A base implementation of `_.indexOf` without support for binary searches
|
||||
* The base implementation of `_.indexOf` without support for binary searches
|
||||
* or `fromIndex` constraints.
|
||||
*
|
||||
* @private
|
||||
@@ -360,7 +360,42 @@
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* A base implementation of `_.flatten` without support for `callback`
|
||||
* The base implementation of `_.createCallback` without support for creating
|
||||
* "_.pluck" or "_.where" style callbacks.
|
||||
*
|
||||
* @private
|
||||
* @param {Mixed} [func=identity] The value to convert to a callback.
|
||||
* @param {Mixed} [thisArg] The `this` binding of the created callback.
|
||||
* @param {Number} [argCount] The number of arguments the callback accepts.
|
||||
* @returns {Function} Returns a callback function.
|
||||
*/
|
||||
function baseCreateCallback(func, thisArg, argCount) {
|
||||
if (typeof func != 'function') {
|
||||
return identity;
|
||||
}
|
||||
// exit early if there is no `thisArg`
|
||||
if (typeof thisArg == 'undefined') {
|
||||
return func;
|
||||
}
|
||||
switch (argCount) {
|
||||
case 1: return function(value) {
|
||||
return func.call(thisArg, value);
|
||||
};
|
||||
case 2: return function(a, b) {
|
||||
return func.call(thisArg, a, b);
|
||||
};
|
||||
case 3: return function(value, index, collection) {
|
||||
return func.call(thisArg, value, index, collection);
|
||||
};
|
||||
case 4: return function(accumulator, value, index, collection) {
|
||||
return func.call(thisArg, accumulator, value, index, collection);
|
||||
};
|
||||
}
|
||||
return bind(func, thisArg);
|
||||
}
|
||||
|
||||
/**
|
||||
* The base implementation of `_.flatten` without support for `callback`
|
||||
* shorthands or `thisArg` binding.
|
||||
*
|
||||
* @private
|
||||
@@ -388,7 +423,7 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* A base implementation of `_.isEqual`, without support for `thisArg` binding,
|
||||
* The base implementation of `_.isEqual`, without support for `thisArg` binding,
|
||||
* that allows partial "_.where" style comparisons.
|
||||
*
|
||||
* @private
|
||||
@@ -437,7 +472,7 @@
|
||||
}
|
||||
var isArr = className == arrayClass;
|
||||
if (!isArr) {
|
||||
if (a instanceof lodash || b instanceof lodash) {
|
||||
if (hasOwnProperty.call(a, '__wrapped__ ') || b instanceof lodash) {
|
||||
return baseIsEqual(a.__wrapped__ || a, b.__wrapped__ || b, stackA, stackB);
|
||||
}
|
||||
if (className != objectClass) {
|
||||
@@ -499,7 +534,7 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* A base implementation of `_.uniq` without support for `callback` shorthands
|
||||
* The base implementation of `_.uniq` without support for `callback` shorthands
|
||||
* or `thisArg` binding.
|
||||
*
|
||||
* @private
|
||||
@@ -729,7 +764,7 @@
|
||||
* @private
|
||||
* @type Function
|
||||
* @param {Object} object The object to inspect.
|
||||
* @returns {Array} Returns a new array of property names.
|
||||
* @returns {Array} Returns an array of property names.
|
||||
*/
|
||||
var shimKeys = function(object) {
|
||||
var index, iterable = object, result = [];
|
||||
@@ -750,7 +785,7 @@
|
||||
* @memberOf _
|
||||
* @category Objects
|
||||
* @param {Object} object The object to inspect.
|
||||
* @returns {Array} Returns a new array of property names.
|
||||
* @returns {Array} Returns an array of property names.
|
||||
* @example
|
||||
*
|
||||
* _.keys({ 'one': 1, 'two': 2, 'three': 3 });
|
||||
@@ -792,7 +827,7 @@
|
||||
/**
|
||||
* Assigns own enumerable properties of source object(s) to the destination
|
||||
* object. Subsequent sources will overwrite property assignments of previous
|
||||
* sources. If a `callback` function is passed, it will be executed to produce
|
||||
* sources. If a `callback` function is provided, it will be executed to produce
|
||||
* the assigned values. The `callback` is bound to `thisArg` and invoked with
|
||||
* two arguments; (objectValue, sourceValue).
|
||||
*
|
||||
@@ -837,7 +872,7 @@
|
||||
/**
|
||||
* Creates a clone of `value`. If `deep` is `true`, nested objects will also
|
||||
* be cloned, otherwise they will be assigned by reference. If a `callback`
|
||||
* function is passed, it will be executed to produce the cloned values. If
|
||||
* function is provided, it will be executed to produce the cloned values. If
|
||||
* `callback` returns `undefined`, cloning will be handled by the method instead.
|
||||
* The `callback` is bound to `thisArg` and invoked with one argument; (value).
|
||||
*
|
||||
@@ -998,7 +1033,7 @@
|
||||
* @alias methods
|
||||
* @category Objects
|
||||
* @param {Object} object The object to inspect.
|
||||
* @returns {Array} Returns a new array of property names that have function values.
|
||||
* @returns {Array} Returns an array of property names that have function values.
|
||||
* @example
|
||||
*
|
||||
* _.functions(_);
|
||||
@@ -1148,7 +1183,7 @@
|
||||
|
||||
/**
|
||||
* Performs a deep comparison between two values to determine if they are
|
||||
* equivalent to each other. If `callback` is passed, it will be executed to
|
||||
* equivalent to each other. If `callback` is provided, it will be executed to
|
||||
* compare values. If `callback` returns `undefined`, comparisons will be handled
|
||||
* by the method instead. The `callback` is bound to `thisArg` and invoked with
|
||||
* two arguments; (a, b).
|
||||
@@ -1395,7 +1430,7 @@
|
||||
/**
|
||||
* Creates a shallow clone of `object` excluding the specified properties.
|
||||
* Property names may be specified as individual arguments or as arrays of
|
||||
* property names. If a `callback` function is passed, it will be executed
|
||||
* property names. If a `callback` function is provided, it will be executed
|
||||
* for each property in the `object`, omitting the properties `callback`
|
||||
* returns truthy for. The `callback` is bound to `thisArg` and invoked
|
||||
* with three arguments; (value, key, object).
|
||||
@@ -1461,7 +1496,7 @@
|
||||
/**
|
||||
* Creates a shallow clone of `object` composed of the specified properties.
|
||||
* Property names may be specified as individual arguments or as arrays of property
|
||||
* names. If `callback` is passed, it will be executed for each property in the
|
||||
* names. If `callback` is provided, it will be executed for each property in the
|
||||
* `object`, picking the properties `callback` returns truthy for. The `callback`
|
||||
* is bound to `thisArg` and invoked with three arguments; (value, key, object).
|
||||
*
|
||||
@@ -1506,7 +1541,7 @@
|
||||
* @memberOf _
|
||||
* @category Objects
|
||||
* @param {Object} object The object to inspect.
|
||||
* @returns {Array} Returns a new array of property values.
|
||||
* @returns {Array} Returns an array of property values.
|
||||
* @example
|
||||
*
|
||||
* _.values({ 'one': 1, 'two': 2, 'three': 3 });
|
||||
@@ -1574,10 +1609,10 @@
|
||||
* The `callback` is bound to `thisArg` and invoked with three arguments;
|
||||
* (value, index|key, collection).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -1585,9 +1620,9 @@
|
||||
* @memberOf _
|
||||
* @category Collections
|
||||
* @param {Array|Object|String} collection The collection to iterate over.
|
||||
* @param {Function|Object|String} [callback=identity] The function called per
|
||||
* iteration. If a property name or object is passed, it will be used to create
|
||||
* a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Function|Object|String} [callback=identity] The function called
|
||||
* per iteration. If a property name or object is provided, it will be used
|
||||
* to create a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Object} Returns the composed aggregate object.
|
||||
* @example
|
||||
@@ -1610,10 +1645,10 @@
|
||||
* `collection`. The `callback` is bound to `thisArg` and invoked with three
|
||||
* arguments; (value, index|key, collection).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -1622,9 +1657,9 @@
|
||||
* @alias all
|
||||
* @category Collections
|
||||
* @param {Array|Object|String} collection The collection to iterate over.
|
||||
* @param {Function|Object|String} [callback=identity] The function called per
|
||||
* iteration. If a property name or object is passed, it will be used to create
|
||||
* a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Function|Object|String} [callback=identity] The function called
|
||||
* per iteration. If a property name or object is provided, it will be used
|
||||
* to create a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Boolean} Returns `true` if all elements pass the callback check,
|
||||
* else `false`.
|
||||
@@ -1672,10 +1707,10 @@
|
||||
* the `callback` returns truthy for. The `callback` is bound to `thisArg`
|
||||
* and invoked with three arguments; (value, index|key, collection).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -1684,9 +1719,9 @@
|
||||
* @alias select
|
||||
* @category Collections
|
||||
* @param {Array|Object|String} collection The collection to iterate over.
|
||||
* @param {Function|Object|String} [callback=identity] The function called per
|
||||
* iteration. If a property name or object is passed, it will be used to create
|
||||
* a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Function|Object|String} [callback=identity] The function called
|
||||
* per iteration. If a property name or object is provided, it will be used
|
||||
* to create a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Array} Returns a new array of elements that passed the callback check.
|
||||
* @example
|
||||
@@ -1736,10 +1771,10 @@
|
||||
* `callback` returns truthy for. The `callback` is bound to `thisArg` and
|
||||
* invoked with three arguments; (value, index|key, collection).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -1748,9 +1783,9 @@
|
||||
* @alias detect, findWhere
|
||||
* @category Collections
|
||||
* @param {Array|Object|String} collection The collection to iterate over.
|
||||
* @param {Function|Object|String} [callback=identity] The function called per
|
||||
* iteration. If a property name or object is passed, it will be used to create
|
||||
* a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Function|Object|String} [callback=identity] The function called
|
||||
* per iteration. If a property name or object is provided, it will be used
|
||||
* to create a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Mixed} Returns the found element, else `undefined`.
|
||||
* @example
|
||||
@@ -1852,7 +1887,7 @@
|
||||
var index = -1,
|
||||
length = collection ? collection.length : 0;
|
||||
|
||||
callback = callback && typeof thisArg == 'undefined' ? callback : createCallback(callback, thisArg, 3);
|
||||
callback = callback && typeof thisArg == 'undefined' ? callback : baseCreateCallback(callback, thisArg, 3);
|
||||
if (typeof length == 'number') {
|
||||
while (++index < length) {
|
||||
if (callback(collection[index], index, collection) === indicatorObject) {
|
||||
@@ -1888,10 +1923,8 @@
|
||||
if (typeof length != 'number') {
|
||||
var props = keys(collection);
|
||||
length = props.length;
|
||||
} else if (support.unindexedChars && isString(collection)) {
|
||||
iterable = collection.split('');
|
||||
}
|
||||
callback = createCallback(callback, thisArg, 3);
|
||||
callback = baseCreateCallback(callback, thisArg, 3);
|
||||
forEach(collection, function(value, index, collection) {
|
||||
index = props ? props[--length] : --length;
|
||||
callback(iterable[index], index, collection);
|
||||
@@ -1906,10 +1939,10 @@
|
||||
* the key. The `callback` is bound to `thisArg` and invoked with three
|
||||
* arguments; (value, index|key, collection).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`
|
||||
*
|
||||
@@ -1917,9 +1950,9 @@
|
||||
* @memberOf _
|
||||
* @category Collections
|
||||
* @param {Array|Object|String} collection The collection to iterate over.
|
||||
* @param {Function|Object|String} [callback=identity] The function called per
|
||||
* iteration. If a property name or object is passed, it will be used to create
|
||||
* a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Function|Object|String} [callback=identity] The function called
|
||||
* per iteration. If a property name or object is provided, it will be used
|
||||
* to create a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Object} Returns the composed aggregate object.
|
||||
* @example
|
||||
@@ -1978,10 +2011,10 @@
|
||||
* through the `callback`. The `callback` is bound to `thisArg` and invoked with
|
||||
* three arguments; (value, index|key, collection).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -1990,9 +2023,9 @@
|
||||
* @alias collect
|
||||
* @category Collections
|
||||
* @param {Array|Object|String} collection The collection to iterate over.
|
||||
* @param {Function|Object|String} [callback=identity] The function called per
|
||||
* iteration. If a property name or object is passed, it will be used to create
|
||||
* a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Function|Object|String} [callback=identity] The function called
|
||||
* per iteration. If a property name or object is provided, it will be used
|
||||
* to create a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Array} Returns a new array of the results of each `callback` execution.
|
||||
* @example
|
||||
@@ -2032,15 +2065,15 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the maximum value of an `array`. If `callback` is passed,
|
||||
* Retrieves the maximum value of an `array`. If `callback` is provided,
|
||||
* it will be executed for each value in the `array` to generate the
|
||||
* criterion by which the value is ranked. The `callback` is bound to
|
||||
* `thisArg` and invoked with three arguments; (value, index, collection).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -2048,9 +2081,9 @@
|
||||
* @memberOf _
|
||||
* @category Collections
|
||||
* @param {Array|Object|String} collection The collection to iterate over.
|
||||
* @param {Function|Object|String} [callback=identity] The function called per
|
||||
* iteration. If a property name or object is passed, it will be used to create
|
||||
* a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Function|Object|String} [callback=identity] The function called
|
||||
* per iteration. If a property name or object is provided, it will be used
|
||||
* to create a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Mixed} Returns the maximum value.
|
||||
* @example
|
||||
@@ -2099,15 +2132,15 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the minimum value of an `array`. If `callback` is passed,
|
||||
* Retrieves the minimum value of an `array`. If `callback` is provided,
|
||||
* it will be executed for each value in the `array` to generate the
|
||||
* criterion by which the value is ranked. The `callback` is bound to `thisArg`
|
||||
* and invoked with three arguments; (value, index, collection).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -2115,9 +2148,9 @@
|
||||
* @memberOf _
|
||||
* @category Collections
|
||||
* @param {Array|Object|String} collection The collection to iterate over.
|
||||
* @param {Function|Object|String} [callback=identity] The function called per
|
||||
* iteration. If a property name or object is passed, it will be used to create
|
||||
* a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Function|Object|String} [callback=identity] The function called
|
||||
* per iteration. If a property name or object is provided, it will be used
|
||||
* to create a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Mixed} Returns the minimum value.
|
||||
* @example
|
||||
@@ -2231,7 +2264,7 @@
|
||||
function reduce(collection, callback, accumulator, thisArg) {
|
||||
if (!collection) return accumulator;
|
||||
var noaccum = arguments.length < 3;
|
||||
callback = createCallback(callback, thisArg, 4);
|
||||
callback = baseCreateCallback(callback, thisArg, 4);
|
||||
|
||||
var index = -1,
|
||||
length = collection.length;
|
||||
@@ -2274,7 +2307,7 @@
|
||||
*/
|
||||
function reduceRight(collection, callback, accumulator, thisArg) {
|
||||
var noaccum = arguments.length < 3;
|
||||
callback = createCallback(callback, thisArg, 4);
|
||||
callback = baseCreateCallback(callback, thisArg, 4);
|
||||
forEachRight(collection, function(value, index, collection) {
|
||||
accumulator = noaccum
|
||||
? (noaccum = false, value)
|
||||
@@ -2287,10 +2320,10 @@
|
||||
* The opposite of `_.filter`, this method returns the elements of a
|
||||
* `collection` that `callback` does **not** return truthy for.
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -2298,9 +2331,9 @@
|
||||
* @memberOf _
|
||||
* @category Collections
|
||||
* @param {Array|Object|String} collection The collection to iterate over.
|
||||
* @param {Function|Object|String} [callback=identity] The function called per
|
||||
* iteration. If a property name or object is passed, it will be used to create
|
||||
* a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Function|Object|String} [callback=identity] The function called
|
||||
* per iteration. If a property name or object is provided, it will be used
|
||||
* to create a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Array} Returns a new array of elements that did **not** pass the
|
||||
* callback check.
|
||||
@@ -2387,10 +2420,10 @@
|
||||
* does not iterate over the entire `collection`. The `callback` is bound to
|
||||
* `thisArg` and invoked with three arguments; (value, index|key, collection).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -2399,9 +2432,9 @@
|
||||
* @alias any
|
||||
* @category Collections
|
||||
* @param {Array|Object|String} collection The collection to iterate over.
|
||||
* @param {Function|Object|String} [callback=identity] The function called per
|
||||
* iteration. If a property name or object is passed, it will be used to create
|
||||
* a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Function|Object|String} [callback=identity] The function called
|
||||
* per iteration. If a property name or object is provided, it will be used
|
||||
* to create a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Boolean} Returns `true` if any element passes the callback check,
|
||||
* else `false`.
|
||||
@@ -2451,10 +2484,10 @@
|
||||
* equal elements. The `callback` is bound to `thisArg` and invoked with three
|
||||
* arguments; (value, index|key, collection).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -2462,9 +2495,9 @@
|
||||
* @memberOf _
|
||||
* @category Collections
|
||||
* @param {Array|Object|String} collection The collection to iterate over.
|
||||
* @param {Function|Object|String} [callback=identity] The function called per
|
||||
* iteration. If a property name or object is passed, it will be used to create
|
||||
* a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Function|Object|String} [callback=identity] The function called
|
||||
* per iteration. If a property name or object is provided, it will be used
|
||||
* to create a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Array} Returns a new array of sorted elements.
|
||||
* @example
|
||||
@@ -2617,16 +2650,16 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the first element of the `array`. If a number `n` is passed, the first
|
||||
* `n` elements of the `array` are returned. If a `callback` function is passed,
|
||||
* Gets the first element of the `array`. If a number `n` is provided, the first
|
||||
* `n` elements of the `array` are returned. If a `callback` function is provided,
|
||||
* elements at the beginning of the array are returned as long as the `callback`
|
||||
* returns truthy. The `callback` is bound to `thisArg` and invoked with three
|
||||
* arguments; (value, index, array).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -2637,7 +2670,7 @@
|
||||
* @param {Array} array The array to query.
|
||||
* @param {Function|Object|Number|String} [callback|n] The function called
|
||||
* per element or the number of elements to return. If a property name or
|
||||
* object is passed, it will be used to create a "_.pluck" or "_.where"
|
||||
* object is provided, it will be used to create a "_.pluck" or "_.where"
|
||||
* style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Mixed} Returns the first element(s) of `array`.
|
||||
@@ -2697,14 +2730,14 @@
|
||||
/**
|
||||
* Flattens a nested array (the nesting can be to any depth). If `isShallow`
|
||||
* is truthy, `array` will only be flattened a single level. If `callback`
|
||||
* is passed, each element of `array` is passed through a `callback` before
|
||||
* is provided, each element of `array` is provided through a `callback` before
|
||||
* flattening. The `callback` is bound to `thisArg` and invoked with three
|
||||
* arguments; (value, index, array).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -2713,9 +2746,9 @@
|
||||
* @category Arrays
|
||||
* @param {Array} array The array to flatten.
|
||||
* @param {Boolean} [isShallow=false] A flag to restrict flattening to a single level.
|
||||
* @param {Function|Object|String} [callback=identity] The function called per
|
||||
* iteration. If a property name or object is passed, it will be used to create
|
||||
* a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Function|Object|String} [callback=identity] The function called
|
||||
* per iteration. If a property name or object is provided, it will be used
|
||||
* to create a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Array} Returns a new flattened array.
|
||||
* @example
|
||||
@@ -2775,16 +2808,16 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all but the last element of `array`. If a number `n` is passed, the
|
||||
* Gets all but the last element of `array`. If a number `n` is provided, the
|
||||
* last `n` elements are excluded from the result. If a `callback` function
|
||||
* is passed, elements at the end of the array are excluded from the result
|
||||
* is provided, elements at the end of the array are excluded from the result
|
||||
* as long as the `callback` returns truthy. The `callback` is bound to
|
||||
* `thisArg` and invoked with three arguments; (value, index, array).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -2794,7 +2827,7 @@
|
||||
* @param {Array} array The array to query.
|
||||
* @param {Function|Object|Number|String} [callback|n=1] The function called
|
||||
* per element or the number of elements to exclude. If a property name or
|
||||
* object is passed, it will be used to create a "_.pluck" or "_.where"
|
||||
* object is provided, it will be used to create a "_.pluck" or "_.where"
|
||||
* style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Array} Returns a slice of `array`.
|
||||
@@ -2888,17 +2921,17 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the last element of the `array`. If a number `n` is passed, the
|
||||
* Gets the last element of the `array`. If a number `n` is provided, the
|
||||
* last `n` elements of the `array` are returned. If a `callback` function
|
||||
* is passed, elements at the end of the array are returned as long as the
|
||||
* is provided, elements at the end of the array are returned as long as the
|
||||
* `callback` returns truthy. The `callback` is bound to `thisArg` and
|
||||
* invoked with three arguments;(value, index, array).
|
||||
*
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -2908,7 +2941,7 @@
|
||||
* @param {Array} array The array to query.
|
||||
* @param {Function|Object|Number|String} [callback|n] The function called
|
||||
* per element or the number of elements to return. If a property name or
|
||||
* object is passed, it will be used to create a "_.pluck" or "_.where"
|
||||
* object is provided, it will be used to create a "_.pluck" or "_.where"
|
||||
* style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Mixed} Returns the last element(s) of `array`.
|
||||
@@ -3050,16 +3083,16 @@
|
||||
|
||||
/**
|
||||
* The opposite of `_.initial`, this method gets all but the first value of
|
||||
* `array`. If a number `n` is passed, the first `n` values are excluded from
|
||||
* the result. If a `callback` function is passed, elements at the beginning
|
||||
* `array`. If a number `n` is provided, the first `n` values are excluded from
|
||||
* the result. If a `callback` function is provided, elements at the beginning
|
||||
* of the array are excluded from the result as long as the `callback` returns
|
||||
* truthy. The `callback` is bound to `thisArg` and invoked with three
|
||||
* arguments; (value, index, array).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -3070,7 +3103,7 @@
|
||||
* @param {Array} array The array to query.
|
||||
* @param {Function|Object|Number|String} [callback|n=1] The function called
|
||||
* per element or the number of elements to exclude. If a property name or
|
||||
* object is passed, it will be used to create a "_.pluck" or "_.where"
|
||||
* object is provided, it will be used to create a "_.pluck" or "_.where"
|
||||
* style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Array} Returns a slice of `array`.
|
||||
@@ -3125,14 +3158,14 @@
|
||||
/**
|
||||
* Uses a binary search to determine the smallest index at which the `value`
|
||||
* should be inserted into `array` in order to maintain the sort order of the
|
||||
* sorted `array`. If `callback` is passed, it will be executed for `value` and
|
||||
* each element in `array` to compute their sort ranking. The `callback` is
|
||||
* bound to `thisArg` and invoked with one argument; (value).
|
||||
* sorted `array`. If `callback` is provided, it will be executed for `value`
|
||||
* and each element in `array` to compute their sort ranking. The `callback`
|
||||
* is bound to `thisArg` and invoked with one argument; (value).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -3141,9 +3174,9 @@
|
||||
* @category Arrays
|
||||
* @param {Array} array The array to inspect.
|
||||
* @param {Mixed} value The value to evaluate.
|
||||
* @param {Function|Object|String} [callback=identity] The function called per
|
||||
* iteration. If a property name or object is passed, it will be used to create
|
||||
* a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Function|Object|String} [callback=identity] The function called
|
||||
* per iteration. If a property name or object is provided, it will be used
|
||||
* to create a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Number} Returns the index at which the value should be inserted
|
||||
* into `array`.
|
||||
@@ -3208,14 +3241,15 @@
|
||||
/**
|
||||
* Creates a duplicate-value-free version of the `array` using strict equality
|
||||
* for comparisons, i.e. `===`. If the `array` is already sorted, passing `true`
|
||||
* for `isSorted` will run a faster algorithm. If `callback` is passed, each
|
||||
* element of `array` is passed through the `callback` before uniqueness is computed.
|
||||
* The `callback` is bound to `thisArg` and invoked with three arguments; (value, index, array).
|
||||
* for `isSorted` will run a faster algorithm. If `callback` is provided, each
|
||||
* element of `array` is provided through the `callback` before uniqueness is
|
||||
* computed. The `callback` is bound to `thisArg` and invoked with three arguments;
|
||||
* (value, index, array).
|
||||
*
|
||||
* If a property name is passed for `callback`, the created "_.pluck" style
|
||||
* If a property name is provided for `callback`, the created "_.pluck" style
|
||||
* callback will return the property value of the given element.
|
||||
*
|
||||
* If an object is passed for `callback`, the created "_.where" style callback
|
||||
* If an object is provided for `callback`, the created "_.where" style callback
|
||||
* will return `true` for elements that have the properties of the given object,
|
||||
* else `false`.
|
||||
*
|
||||
@@ -3225,9 +3259,9 @@
|
||||
* @category Arrays
|
||||
* @param {Array} array The array to process.
|
||||
* @param {Boolean} [isSorted=false] A flag to indicate that the `array` is already sorted.
|
||||
* @param {Function|Object|String} [callback=identity] The function called per
|
||||
* iteration. If a property name or object is passed, it will be used to create
|
||||
* a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Function|Object|String} [callback=identity] The function called
|
||||
* per iteration. If a property name or object is provided, it will be used
|
||||
* to create a "_.pluck" or "_.where" style callback, respectively.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Array} Returns a duplicate-value-free array.
|
||||
* @example
|
||||
@@ -3481,8 +3515,6 @@
|
||||
* If `func` is an object, the created callback will return `true` for elements
|
||||
* that contain the equivalent object properties, otherwise it will return `false`.
|
||||
*
|
||||
* Note: All Lo-Dash methods, that accept a `callback` argument, use `_.createCallback`.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
* @category Functions
|
||||
@@ -3507,64 +3539,30 @@
|
||||
*
|
||||
* _.filter(stooges, 'age__gt45');
|
||||
* // => [{ 'name': 'larry', 'age': 50 }]
|
||||
*
|
||||
* // create mixins with support for "_.pluck" and "_.where" callback shorthands
|
||||
* _.mixin({
|
||||
* 'toLookup': function(collection, callback, thisArg) {
|
||||
* callback = _.createCallback(callback, thisArg);
|
||||
* return _.reduce(collection, function(result, value, index, collection) {
|
||||
* return (result[callback(value, index, collection)] = value, result);
|
||||
* }, {});
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* _.toLookup(stooges, 'name');
|
||||
* // => { 'moe': { 'name': 'moe', 'age': 40 }, 'larry': { 'name': 'larry', 'age': 50 } }
|
||||
*/
|
||||
function createCallback(func, thisArg, argCount) {
|
||||
if (func == null) {
|
||||
return identity;
|
||||
}
|
||||
var type = typeof func;
|
||||
if (type != 'function') {
|
||||
// handle "_.pluck" style callback shorthands
|
||||
if (type != 'object') {
|
||||
return function(object) {
|
||||
return object[func];
|
||||
};
|
||||
}
|
||||
var props = keys(func);
|
||||
if (func == null || type == 'function') {
|
||||
return baseCreateCallback(func, thisArg, argCount);
|
||||
}
|
||||
// handle "_.pluck" style callback shorthands
|
||||
if (type != 'object') {
|
||||
return function(object) {
|
||||
var length = props.length,
|
||||
result = false;
|
||||
return object[func];
|
||||
};
|
||||
}
|
||||
var props = keys(func);
|
||||
return function(object) {
|
||||
var length = props.length,
|
||||
result = false;
|
||||
|
||||
while (length--) {
|
||||
if (!(result = object[props[length]] === func[props[length]])) {
|
||||
break;
|
||||
}
|
||||
while (length--) {
|
||||
if (!(result = object[props[length]] === func[props[length]])) {
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
};
|
||||
}
|
||||
// exit early if there is no `thisArg`
|
||||
if (typeof thisArg == 'undefined') {
|
||||
return func;
|
||||
}
|
||||
switch (argCount) {
|
||||
case 1: return function(value) {
|
||||
return func.call(thisArg, value);
|
||||
};
|
||||
case 2: return function(a, b) {
|
||||
return func.call(thisArg, a, b);
|
||||
};
|
||||
case 3: return function(value, index, collection) {
|
||||
return func.call(thisArg, value, index, collection);
|
||||
};
|
||||
case 4: return function(accumulator, value, index, collection) {
|
||||
return func.call(thisArg, accumulator, value, index, collection);
|
||||
};
|
||||
}
|
||||
return bind(func, thisArg);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -3991,7 +3989,8 @@
|
||||
|
||||
/**
|
||||
* Produces a random number between `min` and `max` (inclusive). If only one
|
||||
* argument is passed, a number between `0` and the given number will be returned.
|
||||
* argument is provided, a number between `0` and the given number will be
|
||||
* returned.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
@@ -4207,7 +4206,7 @@
|
||||
* @param {Number} n The number of times to execute the callback.
|
||||
* @param {Function} callback The function called per iteration.
|
||||
* @param {Mixed} [thisArg] The `this` binding of `callback`.
|
||||
* @returns {Array} Returns a new array of the results of each `callback` execution.
|
||||
* @returns {Array} Returns an array of the results of each `callback` execution.
|
||||
* @example
|
||||
*
|
||||
* var diceRolls = _.times(3, _.partial(_.random, 1, 6));
|
||||
@@ -4249,7 +4248,7 @@
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a unique ID. If `prefix` is passed, the ID will be appended to it.
|
||||
* Generates a unique ID. If `prefix` is provided, the ID will be appended to it.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
@@ -4345,22 +4344,6 @@
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Produces the `toString` result of the wrapped value.
|
||||
*
|
||||
* @name toString
|
||||
* @memberOf _
|
||||
* @category Chaining
|
||||
* @returns {String} Returns the string result.
|
||||
* @example
|
||||
*
|
||||
* _([1, 2, 3]).toString();
|
||||
* // => '1,2,3'
|
||||
*/
|
||||
function wrapperToString() {
|
||||
return String(this.__wrapped__);
|
||||
}
|
||||
|
||||
/**
|
||||
* Extracts the wrapped value.
|
||||
*
|
||||
@@ -4504,6 +4487,9 @@
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
// add functions to `lodash.prototype`
|
||||
mixin(lodash);
|
||||
|
||||
/**
|
||||
* The semantic version number.
|
||||
*
|
||||
@@ -4513,9 +4499,6 @@
|
||||
*/
|
||||
lodash.VERSION = '1.3.1';
|
||||
|
||||
// add functions to `lodash.prototype`
|
||||
mixin(lodash);
|
||||
|
||||
// add "Chaining" functions to the wrapper
|
||||
lodash.prototype.chain = wrapperChain;
|
||||
lodash.prototype.value = wrapperValueOf;
|
||||
|
||||
Reference in New Issue
Block a user