unsorted = [2,4,88,5,6,5,5,8888888]
unsorted = unsorted.sort(function(a,b){
if (a.length == b.length) {
if (a < b) {
return -1;
} else if (a > b) {
return 1;
} else {
return 0;
}
} else if (a.length < b.length) {
return -1;
} else {
return 1;
}
});
console.log(unsorted);
Numbers do not have a length property, so 1.length is undefined. Since a.length and b.length are both undefined, a.length == b.length returns true.
If you'd actually like to compare the length of digits in a number, first convert it to a string: a.toString().length
var a=1;
var b=10;
console.log("a.length: " + a.length);
console.log("b.length: " + b.length);
console.log(a.length == b.length);
console.log("a.toString().length: " + a.toString().length);
console.log("b.toString().length: " + b.toString().length);
console.log(a.toString().length == b.toString().length);