【发布时间】:2020-08-04 15:17:34
【问题描述】:
为什么会有这段代码
["Q", "fP", "AQ", "L"].sort((a,b) => a.localeCompare(b))
给出这个结果:
["AQ", "fP", "L", "Q"]
我认为它会给我这个(这就是我需要的):
["AQ", "L", "Q", "fP"]
所有大写字母都在小写字母之前chortle.ccsu.edu/java5/Notes/chap92/ch92_2.html
【问题讨论】:
-
你为什么这么认为?这没有意义。
-
["Q", "fP", "AQ", "L"].sort()会给你那个输出 -
@AdamOrlov 所有大写字母都在小写字母之前chortle.ccsu.edu/java5/Notes/chap92/ch92_2.html
-
你会认为
a.localeCompare(b, "en", {sensitivity: 'case', caseFirst: "upper"})会起作用......但它不会。 -
@RachidOussanaa — 字典顺序的定义是 Java 特有的,并不普遍使用。字典的排序不是所有单词都以大写字母开头,然后都是小写字母。他们已经存在了几个世纪。碰巧的是,字母字符的 ASCII 代码序列在小写字母之前列出了大写字母。 localeCompare 试图解决这个问题。
标签: javascript