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?
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?
Share Improve this question asked Jun 2, 2010 at 19:41 hhjhhj 5012 gold badges8 silver badges13 bronze badges 2- This callback function will sort an array of decimal numbers in ascending numerical order. Did you want it to do something different? – Chris Shouts Commented Jun 2, 2010 at 19:50
- Uh... this should work regardless. – Thomas Eding Commented Jun 2, 2010 at 19:52
2 Answers
Reset to default 14I 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.
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;
}
});