linq.js
function min(keySelector, comparer) {
  let itComparer = typeof comparer === 'function' ? comparer : util.defaultComparer;
  let itKeySelector = typeof keySelector === 'function' ? keySelector : (i) => i;

  let minimum = this.firstOrDefault();

  for (let item of this) {
    minimum = itComparer(itKeySelector(item), itKeySelector(minimum)) < 0 ? item : minimum;
  }

  return minimum;
}
function min(keySelector, comparer) {
  let itComparer = typeof comparer === 'function' ? comparer : util.defaultComparer;
  let itKeySelector = typeof keySelector === 'function' ? keySelector : (i) => i;

  let minimum = this.firstOrDefault();

  for (let item of this) {
    minimum = itComparer(itKeySelector(item), itKeySelector(minimum)) < 0 ? item : minimum;
  }

  return minimum;
}
function min ( keySelector , comparer ) { let itComparer = typeof comparer === 'function' ? comparer : util . defaultComparer ; let itKeySelector = typeof keySelector === 'function' ? keySelector : ( i ) => i ; let minimum = this . firstOrDefault ( ) ; for ( let item of this ) { minimum = itComparer ( itKeySelector ( item ) , itKeySelector ( minimum ) ) < 0 ? item : minimum ; } return minimum ; }
Returns the minimum value in a sequence.

@param keySelector A transform function to apply to each element.
@param comparer A comparer function to check with item is less.
@return The minimum value in the sequence.
Returns the minimum value in a sequence .