hhj
hhj

Reputation: 501

Javascript - sorting arrays containing positive and negative "decimal" numbers

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

Answers (2)

Abeer Mousa
Abeer Mousa

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

nuffGigs
nuffGigs

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

Related Questions