String/Numeric Comparison

HTML

<div class="output3">String array: </div>
<div class="output4">After sort: </div>

JavaScript

// Dummy arrays
var stringArr = [10,"20",null,"1","bar","-2",-3,null,5,"foo"];

// Sort arrays
$(".output3").append(stringArr.toString());
stringArr.sort(sortByDataString);
$(".output4").append(stringArr.toString());

/* http://stackoverflow.com/questions/18082/validate-numbers-in-javascript-isnumeric */
function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

// String sorting function
function sortByDataString(a, b) {
    if (a === null) {
        return 1;
    }
    if (b === null) {
        return -1;
    }
    if (isNumber(a) && isNumber(b)) {
        if (parseInt(a,10) === parseInt(b,10)) {
            return 0;
        }
        return parseInt(a,10) > parseInt(b,10) ? 1 : -1;
    }
    if (isNumber(a)) {
        return -1;
    }
    if (isNumber(b)) {
        return 1;
    }
    if (a === b) {
        return 0;
    }
    return a > b ? 1 : -1;
}