【发布时间】:2022-01-05 03:24:26
【问题描述】:
我需要对一个字符串数组进行排序,其中元素按字典顺序作为代码点值序列进行比较,例如,"Z" < "a" < "\udabc" < "�" < "????"。
- 除了手动迭代两个字符串并比较相应的代码点之外,还有更有效的比较字符串的方法吗?
- 如果保证字符串没有任何代理代码点(但可能有代理对,所以
"�" < "????"应该仍然成立)怎么办?对于这种特殊情况,是否有更有效的程序?
注意:StackOverflow 上有很多解释如何对字符串进行排序的答案,但它们要么使用localeCompare 顺序,要么使用 JavaScript 比较运算符定义的顺序(将字符串作为 UTF-16 代码单元的序列进行比较)。我对这两个都不感兴趣。
【问题讨论】:
-
如何使用
charCodeAt将它们转换为数字并按此排序? -
@evolutionxbox 字符串可以是任意长度,单字符串仅作为示例。
-
我想知道是否有办法将Unicode Codepoint Collation 用于
Intl比较函数
标签: javascript unicode comparison codepoint