Sha256: 592d2f30df63bbfe6264090077918fe404eae8278d546c3d7e3c5fe9b2f630c9

Contents?: true

Size: 1.79 KB

Versions: 153

Compression:

Stored size: 1.79 KB

Contents

var baseFlatten = require('../internal/baseFlatten'),
    baseSortByOrder = require('../internal/baseSortByOrder'),
    isIterateeCall = require('../internal/isIterateeCall'),
    restParam = require('../function/restParam');

/**
 * This method is like `_.sortBy` except that it can sort by multiple iteratees
 * or property names.
 *
 * If a property name is provided for an iteratee the created `_.property`
 * style callback returns the property value of the given element.
 *
 * If an object is provided for an iteratee 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|Function[]|Object|Object[]|string|string[])} iteratees
 *  The iteratees to sort by, specified as individual values or arrays of values.
 * @returns {Array} Returns the new sorted array.
 * @example
 *
 * var users = [
 *   { 'user': 'fred',   'age': 48 },
 *   { 'user': 'barney', 'age': 36 },
 *   { 'user': 'fred',   'age': 42 },
 *   { 'user': 'barney', 'age': 34 }
 * ];
 *
 * _.map(_.sortByAll(users, ['user', 'age']), _.values);
 * // => [['barney', 34], ['barney', 36], ['fred', 42], ['fred', 48]]
 *
 * _.map(_.sortByAll(users, 'user', function(chr) {
 *   return Math.floor(chr.age / 10);
 * }), _.values);
 * // => [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 42]]
 */
var sortByAll = restParam(function(collection, iteratees) {
  if (collection == null) {
    return [];
  }
  var guard = iteratees[2];
  if (guard && isIterateeCall(iteratees[0], iteratees[1], guard)) {
    iteratees.length = 1;
  }
  return baseSortByOrder(collection, baseFlatten(iteratees), []);
});

module.exports = sortByAll;

Version data entries

153 entries across 80 versions & 8 rubygems

Version Path
ilog-0.4.1 node_modules/contents/node_modules/lodash/collection/sortByAll.js
ilog-0.4.1 node_modules/babel-plugin-proto-to-assign/node_modules/lodash/collection/sortByAll.js
ilog-0.4.1 node_modules/babel/node_modules/lodash/collection/sortByAll.js
ilog-0.4.0 node_modules/babel/node_modules/lodash/collection/sortByAll.js
ilog-0.4.0 node_modules/contents/node_modules/lodash/collection/sortByAll.js
ilog-0.4.0 node_modules/babel-plugin-proto-to-assign/node_modules/lodash/collection/sortByAll.js
ilog-0.3.3 node_modules/babel/node_modules/lodash/collection/sortByAll.js
ilog-0.3.3 node_modules/contents/node_modules/lodash/collection/sortByAll.js
ilog-0.3.3 node_modules/babel-plugin-proto-to-assign/node_modules/lodash/collection/sortByAll.js
trusty-festivity-extension-2.6.3 node_modules/bower/node_modules/configstore/node_modules/js-yaml/node_modules/argparse/node_modules/lodash/collection/sortByAll.js
trusty-festivity-extension-2.6.3 node_modules/bower/node_modules/inquirer/node_modules/lodash/collection/sortByAll.js
trusty-festivity-extension-2.6.2 node_modules/bower/node_modules/configstore/node_modules/js-yaml/node_modules/argparse/node_modules/lodash/collection/sortByAll.js
trusty-festivity-extension-2.6.2 node_modules/bower/node_modules/inquirer/node_modules/lodash/collection/sortByAll.js
trusty-festivity-extension-2.6.1 node_modules/bower/node_modules/configstore/node_modules/js-yaml/node_modules/argparse/node_modules/lodash/collection/sortByAll.js
trusty-festivity-extension-2.6.1 node_modules/bower/node_modules/inquirer/node_modules/lodash/collection/sortByAll.js
xcodebuild-helper-1.2.5 externals/ios-sim-master/node_modules/lodash/collection/sortByAll.js
trusty-festivity-extension-2.6 node_modules/bower/node_modules/configstore/node_modules/js-yaml/node_modules/argparse/node_modules/lodash/collection/sortByAll.js
trusty-festivity-extension-2.6 node_modules/bower/node_modules/inquirer/node_modules/lodash/collection/sortByAll.js
trusty-festivity-extension-2.5.19 node_modules/bower/node_modules/configstore/node_modules/js-yaml/node_modules/argparse/node_modules/lodash/collection/sortByAll.js
trusty-festivity-extension-2.5.19 node_modules/bower/node_modules/inquirer/node_modules/lodash/collection/sortByAll.js