Reputation: 501
I originally had the following callback passed as a parameter to the javascript array sort()
function:
function sortNumber(a,b) {
return a-b;
}
However this doesn't work when my array contains positive and negative decimal numbers (i.e. -107.578, 97.453 etc.) How would I modify this to sort properly?
Upvotes: 2
Views: 15642
Reputation: 1
nums.sort(function(a, b) {
if (a < 0 && b < 0 || a > 0 && b > 0) {
return a-b;
} else if (a < 0) {
return -1;
} else if (b < 0) {
return 1;
}
});
Upvotes: 0
Reputation: 356
I don't see any problems with that function. Here's my test code:
var nums = [10, 5, 40, 25, -3412,4212, -107.578, 97.453];
function sortNumber(a,b){
return a - b;
}
alert( nums.sort(sortNumber) );
Can you show some more of your code? It might be a problem with the array.
Upvotes: 14