Forum Discussion

tphillips's avatar
Frequent Contributor
4 years ago

TestComplete Javascript localeCompare doesn't work

I am trying to sort an array with strings with numbers in them, and I am wanting it to be sorted "naturally", i.e. "test1", "test10", "test2" => "test1", "test2", "test10"

I see that we should be able to use the localeCompare() function to do this:

However, the following code prints 1 ("2" > "10) for each statement:


function test2() {
    Log.Message("2".localeCompare("10")); // Prints 1 ("2" > "10")
    Log.Message("2".localeCompare("10", undefined, {numeric: true})); // Should print -1 (2 < 10) but prints 1


Am I doing something wrong?

Is there another way to do natural sorting, maybe using aqString functions?


In the meantime I have written my own compare function that extracts the numeric parts, converts them to ints, and compares them. I shouldn't have to do this, though.


No RepliesBe the first to reply