我正在寻找一种对字符串列表进行排序的确定性方法。
对字符串进行排序当然通常会导致建议使用 String.localeCompare 。但顺序必须是确定性的,与运行它的计算机无关。
我提出的核心解决方案是对每个字符串进行哈希处理,然后将它们与区域设置选项 en
进行比较。有更简单的解决方案吗?
字符串可以是英语、德语、中文、日语……
最佳答案
奇怪的是,符合您要求的是......默认sort
:
theStrings.sort();
根据字符串中的 UTF-16 代码单元进行排序,不会因计算机/区域设置/其他因素而变化。它将字符串(实际上)视为一系列 16 位数字(准确地说是 Unicode 代码单元)。
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/