A classificação Javascript é padronizada para string

A função sort () do array Javascript classifica tudo como uma string, mesmo se forem numéricos. Isso pode ser realmente irritante. Considere o seguinte.

var arr = [0, 3, 5, 7, 8, 10, 2, 1];
arr
.sort();
// => [0, 1, 10, 2, 3, 5, 7, 8]

Muito desagradável, certo?
Se você precisar classificar numericamente, deverá passar uma função personalizada para comparar como a seguir.

var arr = [0, 3, 5, 7, 8, 10, 2, 1];
arr
.sort(function (a, b) {
return a - b;
});
// => [0, 1, 2, 3, 5, 7, 8, 10]