在JavaScript中比较字符串的最佳方法?

我正在尝试优化一个在JavaScript中对字符串进行二进制搜索的函数。

二进制搜索要求您知道键是透视表还是透视表。==<

但这需要在JavaScript中进行两个字符串比较,这与具有返回三个值(小于,等于,大于)的函数的类似语言不同。Cstrcmp()(-1, 0, +1)

JavaScript中是否有这样的本机函数,可以返回三元值,以便在二进制搜索的每次迭代中只需要一次比较?


答案 1

您可以使用该方法。localeCompare()

string_a.localeCompare(string_b);

/* Expected Returns:

 0:  exact match

-1:  string_a < string_b

 1:  string_a > string_b

 */

延伸阅读:


答案 2

那么在JavaScript中,你可以检查两个字符串的值是否与整数相同,所以你可以这样做:

  • "A" < "B"
  • "A" == "B"
  • "A" > "B"

因此,您可以创建自己的函数,该函数以与 .strcmp()

因此,这将是执行相同操作的函数:

function strcmp(a, b)
{   
    return (a<b?-1:(a>b?1:0));  
}