How to sort an array of integers correctly

arrays, javascript, numbers, sorting

Solution

By default, the sort method sorts elements alphabetically. To sort numerically just add a new method which handles numeric sorts (sortNumber, shown below) -

var numArray = [140000, 104, 99];
numArray.sort(function(a, b) {
  return a - b;
});

console.log(numArray);

Documentation:

Mozilla `Array.prototype.sort()` recommends this compare function for arrays that don't contain Infinity or NaN. (Because `Infinity - Infinity` is NaN, not 0).

Also examples of sorting objects by key.

Problem

Trying to get the highest and lowest value from an array that I know will contain only integers seems to be harder than I thought. ``` var numArray = [140000, 104, 99]; numArray = numArray.sort(); console.log(numArray) ``` I'd expect this to show `99, 104, 140000`. Instead it shows `104, 140000, 99`. So it seems the sort is handling the values as strings. Is there a way to get the sort function to actually sort on integer value?

Original source