sort mixed IP + DNS

by Christopher Stephens

JavaScript

function sorta(a, b) {
    console.log(arguments);
    var aa = a.split(".", 4);
    var ba = b.split(".", 4);
    var resulta = a;
    var resultb = b;
    
    if(aa.length === 4 && ba.length === 4){
        resulta = (+aa[3] + (+aa[2] * 256) + (+aa[1] * Math.pow(256, 2)) + (+aa[0] * Math.pow(256, 3)));
        resultb = (+ba[3] + (+ba[2] * 256) + (+ba[1] * Math.pow(256, 2)) + (+ba[0] * Math.pow(256, 3)));
        console.log(resulta+":"+resultb+"="+(resulta - resultb));
        return resulta - resultb;
    }else{
        if(aa.length === 4){
            return 1
        }else if(ba.length === 4){
            return -1
        }else{
            return resulta - resultb;
        }
    }
}

var test = ["hi man", "12.3.5.4", "metoo.com", "1.1.1.1", "1.2.3.4", "4.4.3.3"];

console.log(test.sort(sorta));