javascript - JS/TS 中的确定性字符串比较?

标签 javascript typescript string-comparison

我正在寻找一种对字符串列表进行排序的确定性方法。

对字符串进行排序当然通常会导致建议使用 String.localeCompare 。但顺序必须是确定性的,与运行它的计算机无关。

我提出的核心解决方案是对每个字符串进行哈希处理,然后将它们与区域设置选项 en 进行比较。有更简单的解决方案吗?

字符串可以是英语、德语、中文、日语……

最佳答案

奇怪的是,符合您要求的是......默认sort :

theStrings.sort();

根据字符串中的 UTF-16 代码单元进行排序,不会因计算机/区域设置/其他因素而变化。它将字符串(实际上)视为一系列 16 位数字(准确地说是 Unicode 代码单元)。

来自the specification :

If comparefn is not undefined, it should be a function that accepts two arguments x and y and returns a negative Number if x < y, a positive Number if x > y, or a zero otherwise.

还有<>运算符由抽象 IsLessThan 定义规范中的操作,通过字符串中的代码单元进行比较。

关于javascript - JS/TS 中的确定性字符串比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68785888/

相关文章:

typescript - TypeScript 中 Angular 2 的最佳实践

javascript - 如何在javascript中对带有空格的字符串进行排序?

javascript - 字符串比较 - 两个字符看起来相同但具有不同的 ASCII 值?

javascript - 叠加层未全高

javascript - 在 JAVASCRIPT 中创建 UTC 日期对象

reactjs - 将自定义 Prop 传递给 typescript 中的样式组件

typescript - 我如何在mixin中获取类名?

javascript - 为什么在 ASP.NET MVC 中我得到 JSON 而不是 FileDownload?

javascript在函数调用时捕获错误

c# - Azure存储表查询: Building a Contains Filter