How To Ignore "-" And "." Characters In A Value During Sort Comparison?
I have an html page that has a field that can be sorted. I also have created a javascript function that can sort that field in order. Let's imagine p_cSort is the 'id' name of that
Solution 1:
Why don't you make a custom sort function liek this:
var x = ['12.5', '11.3', '13-5', '10-0'];
x.sort(function(a, b){
a = a.replace(/[-]/, '.');
b = b.replace(/[-]/, '.');
if( parseInt(a) < parseInt(b) ) return -1;
if( parseInt(a) > parseInt(b) ) return1;
return0;
});
Output:
["10-0", "11.3", "12.5", "13-5"]
This will also work if you have 125.5 and so on. because the .
and the -
are both used in the compare.
Example with >= 100
So input:
["100-0", "11.3", "12.5", "13-5"]
Will output
["11.3", "12.5", "13-5", "100-0"]
Solution 2:
Short answer is using replace and sort function:
"12.34".replace(/[.-]/, '')
Full answer
var a = ["12.34", "12-35", "12.36", "12-33"];
var b = a.sort(function(a, b){
returnparseInt(a.replace(/[.-]/, '')) - parseInt(b.replace(/[.-]/, ''))
});
// now b contain sorted array// ["12-33", "12.34", "12-35", "12.36"]
Post a Comment for "How To Ignore "-" And "." Characters In A Value During Sort Comparison?"