Search code examples
javascriptstringoptimizationcomparisonbinary-search

Optimum way to compare strings in JavaScript?


I am trying to optimize a function which does binary search of strings in JavaScript.

Binary search requires you to know whether the key is == the pivot or < the pivot.

But this requires two string comparisons in JavaScript, unlike in C like languages which have the strcmp() function that returns three values (-1, 0, +1) for (less than, equal, greater than).

Is there such a native function in JavaScript, that can return a ternary value so that just one comparison is required in each iteration of the binary search?


Solution

  • You can use the localeCompare() method.

    string_a.localeCompare(string_b);
    
    /* Expected Returns:
    
     0:  exact match
    
    -1:  string_a < string_b
     
     1:  string_a > string_b
    
     */
    

    Further Reading: