mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-07 01:57:50 +00:00
Bump to v3.4.0.
This commit is contained in:
@@ -1,53 +1,3 @@
|
||||
define(['../internal/arrayMax', '../internal/createExtremum'], function(arrayMax, createExtremum) {
|
||||
|
||||
/**
|
||||
* Gets the maximum value of `collection`. If `collection` is empty or falsey
|
||||
* `-Infinity` is returned. If an iteratee function is provided it is invoked
|
||||
* for each value in `collection` to generate the criterion by which the value
|
||||
* is ranked. The `iteratee` is bound to `thisArg` and invoked with three
|
||||
* arguments; (value, index, collection).
|
||||
*
|
||||
* If a property name is provided for `predicate` the created `_.property`
|
||||
* style callback returns the property value of the given element.
|
||||
*
|
||||
* If a value is also provided for `thisArg` the created `_.matchesProperty`
|
||||
* style callback returns `true` for elements that have a matching property
|
||||
* value, else `false`.
|
||||
*
|
||||
* If an object is provided for `predicate` the created `_.matches` style
|
||||
* callback returns `true` for elements that have the properties of the given
|
||||
* object, else `false`.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
* @category Collection
|
||||
* @param {Array|Object|string} collection The collection to iterate over.
|
||||
* @param {Function|Object|string} [iteratee] The function invoked per iteration.
|
||||
* @param {*} [thisArg] The `this` binding of `iteratee`.
|
||||
* @returns {*} Returns the maximum value.
|
||||
* @example
|
||||
*
|
||||
* _.max([4, 2, 8, 6]);
|
||||
* // => 8
|
||||
*
|
||||
* _.max([]);
|
||||
* // => -Infinity
|
||||
*
|
||||
* var users = [
|
||||
* { 'user': 'barney', 'age': 36 },
|
||||
* { 'user': 'fred', 'age': 40 }
|
||||
* ];
|
||||
*
|
||||
* _.max(users, function(chr) {
|
||||
* return chr.age;
|
||||
* });
|
||||
* // => { 'user': 'fred', 'age': 40 };
|
||||
*
|
||||
* // using the `_.property` callback shorthand
|
||||
* _.max(users, 'age');
|
||||
* // => { 'user': 'fred', 'age': 40 };
|
||||
*/
|
||||
var max = createExtremum(arrayMax);
|
||||
|
||||
define(["../math/max"], function(max) {
|
||||
return max;
|
||||
});
|
||||
|
||||
@@ -1,53 +1,3 @@
|
||||
define(['../internal/arrayMin', '../internal/createExtremum'], function(arrayMin, createExtremum) {
|
||||
|
||||
/**
|
||||
* Gets the minimum value of `collection`. If `collection` is empty or falsey
|
||||
* `Infinity` is returned. If an iteratee function is provided it is invoked
|
||||
* for each value in `collection` to generate the criterion by which the value
|
||||
* is ranked. The `iteratee` is bound to `thisArg` and invoked with three
|
||||
* arguments; (value, index, collection).
|
||||
*
|
||||
* If a property name is provided for `predicate` the created `_.property`
|
||||
* style callback returns the property value of the given element.
|
||||
*
|
||||
* If a value is also provided for `thisArg` the created `_.matchesProperty`
|
||||
* style callback returns `true` for elements that have a matching property
|
||||
* value, else `false`.
|
||||
*
|
||||
* If an object is provided for `predicate` the created `_.matches` style
|
||||
* callback returns `true` for elements that have the properties of the given
|
||||
* object, else `false`.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
* @category Collection
|
||||
* @param {Array|Object|string} collection The collection to iterate over.
|
||||
* @param {Function|Object|string} [iteratee] The function invoked per iteration.
|
||||
* @param {*} [thisArg] The `this` binding of `iteratee`.
|
||||
* @returns {*} Returns the minimum value.
|
||||
* @example
|
||||
*
|
||||
* _.min([4, 2, 8, 6]);
|
||||
* // => 2
|
||||
*
|
||||
* _.min([]);
|
||||
* // => Infinity
|
||||
*
|
||||
* var users = [
|
||||
* { 'user': 'barney', 'age': 36 },
|
||||
* { 'user': 'fred', 'age': 40 }
|
||||
* ];
|
||||
*
|
||||
* _.min(users, function(chr) {
|
||||
* return chr.age;
|
||||
* });
|
||||
* // => { 'user': 'barney', 'age': 36 };
|
||||
*
|
||||
* // using the `_.property` callback shorthand
|
||||
* _.min(users, 'age');
|
||||
* // => { 'user': 'barney', 'age': 36 };
|
||||
*/
|
||||
var min = createExtremum(arrayMin, true);
|
||||
|
||||
define(["../math/min"], function(min) {
|
||||
return min;
|
||||
});
|
||||
|
||||
@@ -35,7 +35,7 @@ define(['../internal/createAggregator'], function(createAggregator) {
|
||||
* _.partition([1.2, 2.3, 3.4], function(n) {
|
||||
* return this.floor(n) % 2;
|
||||
* }, Math);
|
||||
* // => [[1, 3], [2]]
|
||||
* // => [[1.2, 3.4], [2.3]]
|
||||
*
|
||||
* var users = [
|
||||
* { 'user': 'barney', 'age': 36, 'active': false },
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
define(['../internal/isLength', '../object/keys'], function(isLength, keys) {
|
||||
|
||||
/**
|
||||
* Gets the size of `collection` by returning `collection.length` for
|
||||
* array-like values or the number of own enumerable properties for objects.
|
||||
* Gets the size of `collection` by returning its length for array-like
|
||||
* values or the number of own enumerable properties for objects.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
|
||||
@@ -50,8 +50,11 @@ define(['../internal/baseCallback', '../internal/baseEach', '../internal/baseSor
|
||||
* // => ['barney', 'fred', 'pebbles']
|
||||
*/
|
||||
function sortBy(collection, iteratee, thisArg) {
|
||||
if (collection == null) {
|
||||
return [];
|
||||
}
|
||||
var index = -1,
|
||||
length = collection ? collection.length : 0,
|
||||
length = collection.length,
|
||||
result = isLength(length) ? Array(length) : [];
|
||||
|
||||
if (thisArg && isIterateeCall(collection, iteratee, thisArg)) {
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
define(['../internal/baseEach', '../internal/baseFlatten', '../internal/baseSortBy', '../internal/compareMultipleAscending', '../internal/isIterateeCall', '../internal/isLength'], function(baseEach, baseFlatten, baseSortBy, compareMultipleAscending, isIterateeCall, isLength) {
|
||||
|
||||
/** Used as a safe reference for `undefined` in pre-ES5 environments. */
|
||||
var undefined;
|
||||
define(['../internal/baseFlatten', '../internal/baseSortByOrder', '../internal/isIterateeCall'], function(baseFlatten, baseSortByOrder, isIterateeCall) {
|
||||
|
||||
/**
|
||||
* This method is like `_.sortBy` except that it sorts by property names
|
||||
@@ -27,25 +24,16 @@ define(['../internal/baseEach', '../internal/baseFlatten', '../internal/baseSort
|
||||
* // => [['barney', 26], ['barney', 36], ['fred', 30], ['fred', 40]]
|
||||
*/
|
||||
function sortByAll(collection) {
|
||||
var args = arguments;
|
||||
if (args.length > 3 && isIterateeCall(args[1], args[2], args[3])) {
|
||||
if (collection == null) {
|
||||
return [];
|
||||
}
|
||||
var args = arguments,
|
||||
guard = args[3];
|
||||
|
||||
if (guard && isIterateeCall(args[1], args[2], guard)) {
|
||||
args = [collection, args[1]];
|
||||
}
|
||||
var index = -1,
|
||||
length = collection ? collection.length : 0,
|
||||
props = baseFlatten(args, false, false, 1),
|
||||
result = isLength(length) ? Array(length) : [];
|
||||
|
||||
baseEach(collection, function(value) {
|
||||
var length = props.length,
|
||||
criteria = Array(length);
|
||||
|
||||
while (length--) {
|
||||
criteria[length] = value == null ? undefined : value[props[length]];
|
||||
}
|
||||
result[++index] = { 'criteria': criteria, 'index': index, 'value': value };
|
||||
});
|
||||
return baseSortBy(result, compareMultipleAscending);
|
||||
return baseSortByOrder(collection, baseFlatten(args, false, false, 1), []);
|
||||
}
|
||||
|
||||
return sortByAll;
|
||||
|
||||
46
collection/sortByOrder.js
Normal file
46
collection/sortByOrder.js
Normal file
@@ -0,0 +1,46 @@
|
||||
define(['../internal/baseSortByOrder', '../lang/isArray', '../internal/isIterateeCall'], function(baseSortByOrder, isArray, isIterateeCall) {
|
||||
|
||||
/**
|
||||
* This method is like `_.sortByAll` except that it allows specifying the
|
||||
* sort orders of the property names to sort by. A truthy value in `orders`
|
||||
* will sort the corresponding property name in ascending order while a
|
||||
* falsey value will sort it in descending order.
|
||||
*
|
||||
* @static
|
||||
* @memberOf _
|
||||
* @category Collection
|
||||
* @param {Array|Object|string} collection The collection to iterate over.
|
||||
* @param {string[]} props The property names to sort by.
|
||||
* @param {boolean[]} orders The sort orders of `props`.
|
||||
* @returns {Array} Returns the new sorted array.
|
||||
* @example
|
||||
*
|
||||
* var users = [
|
||||
* { 'user': 'barney', 'age': 36 },
|
||||
* { 'user': 'fred', 'age': 40 },
|
||||
* { 'user': 'barney', 'age': 26 },
|
||||
* { 'user': 'fred', 'age': 30 }
|
||||
* ];
|
||||
*
|
||||
* // sort by `user` in ascending order and by `age` in descending order
|
||||
* _.map(_.sortByOrder(users, ['user', 'age'], [true, false]), _.values);
|
||||
* // => [['barney', 36], ['barney', 26], ['fred', 40], ['fred', 30]]
|
||||
*/
|
||||
function sortByOrder(collection, props, orders, guard) {
|
||||
if (collection == null) {
|
||||
return [];
|
||||
}
|
||||
if (guard && isIterateeCall(props, orders, guard)) {
|
||||
orders = null;
|
||||
}
|
||||
if (!isArray(props)) {
|
||||
props = props == null ? [] : [props];
|
||||
}
|
||||
if (!isArray(orders)) {
|
||||
orders = orders == null ? [] : [orders];
|
||||
}
|
||||
return baseSortByOrder(collection, props, orders);
|
||||
}
|
||||
|
||||
return sortByOrder;
|
||||
});
|
||||
3
collection/sum.js
Normal file
3
collection/sum.js
Normal file
@@ -0,0 +1,3 @@
|
||||
define(["../math/sum"], function(sum) {
|
||||
return sum;
|
||||
});
|
||||
Reference in New Issue
Block a user