index.js
function sortBy(props, opts) {
  opts = opts || {};

  return function compareFn(a, b) {
    var len = props.length, i = -1;
    var result;

    while (++i < len) {
      result = compare(props[i], a, b);
      if (result !== 0) {
        break;
      }
    }
    if (opts.reverse === true) {
      return result * -1;
    }
    return result;
  };
}
function sortBy(props, opts) {
  opts = opts || {};

  return function compareFn(a, b) {
    var len = props.length, i = -1;
    var result;

    while (++i < len) {
      result = compare(props[i], a, b);
      if (result !== 0) {
        break;
      }
    }
    if (opts.reverse === true) {
      return result * -1;
    }
    return result;
  };
}
function sortBy ( props , opts ) { opts = opts || { } ; return function compareFn ( a , b ) { var len = props . length , i = - 1 ; var result ; while ( ++ i < len ) { result = compare ( props [ i ] , a , b ) ; if ( result !== 0 ) { break ; } } if ( opts . reverse === true ) { return result * - 1 ; } return result ; } ; }
Iterate over each comparison property or function until `1` or `-1`
is returned.

@param  {String|Array|Function} `props` One or more object paths or comparison functions.
@param  {Object} `opts` Pass `{ reverse: true }` to reverse the sort order.
@return {Array}
Iterate over each comparison property or function until 1 or - 1 is returned .