我正在try 优化一个函数,该函数在JavaScript中对字符串进行二进制搜索.

二进制搜索需要知道键是==还是<.

但这需要在JavaScript中进行两个字符串比较,而在类似C的语言中,strcmp()函数返回三个(-1, 0, +1)值(小于、等于、大于).

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

推荐答案

你可以使用localeCompare()法.

string_a.localeCompare(string_b);

/* Expected Returns:

 0:  exact match

-1:  string_a < string_b

 1:  string_a > string_b

 */

进一步阅读:

Javascript相关问答推荐

除了在Angular 16中使用快照之外,什么是可行且更灵活的替代方案?

如何使用JavaScript动态地将CSS应用于ToDo列表?

fetch在本地设置相同来源的cookie,但部署时相同的代码不会设置cookie

如何通过在提交时工作的函数显示dom元素?

警告!合同执行期间遇到错误[执行已恢复](Base Layer 2)

fs. writeFile()vs fs.writeFile()vs fs.appendFile()

我们如何从一个行动中分派行动

你怎么看啦啦队的回应?

为什么123[';toString';].long返回1?

如何在不影响隐式类型的情况下将类型分配给对象?

Jest toHaveBeenNthCalledWith返回当前设置的变量值,而不是调用时的值

如何在Press上重新启动EXPO-AV视频?

删除加载页面时不存在的元素(JavaScript)

如何通过Axios在GraphQL查询中发送数组

本地损坏的Java脚本

在JavaScript中,有没有一种方法可以迭代字符串的词法标记?

bootstrap S JS赢得了REACT中的函数/加载

更新文本区域行号

使用静态函数保存 node 前的钩子

使用Java脚本在div中创建新的span标记