Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 排序字符串时应é;走在e前面_Javascript_String_Sorting - Fatal编程技术网

Javascript 排序字符串时应é;走在e前面

Javascript 排序字符串时应é;走在e前面,javascript,string,sorting,Javascript,String,Sorting,如果我把cafeé和cafe这两个字母分为两类,那么对于哪个字母排在第一位,有没有一个最佳实践可以遵循?我用javascript测试了localeCompare,café排在café之前,但我不明白为什么。最好的做法是先排序,不带发音符号,即café排在café之前 localeCompare通过去除发音符号来工作,因此排序顺序不能反映真实的单词,因为café变成了cafeé 您可以在此处阅读有关localeCompare的更多信息: 文本的排序方式取决于其排序方式 一个传统是字符的“US-A

如果我把cafeé和cafe这两个字母分为两类,那么对于哪个字母排在第一位,有没有一个最佳实践可以遵循?我用javascript测试了localeCompare,café排在café之前,但我不明白为什么。

最好的做法是先排序,不带发音符号,即café排在café之前

localeCompare
通过去除发音符号来工作,因此排序顺序不能反映真实的单词,因为café变成了cafeé

您可以在此处阅读有关localeCompare的更多信息:

文本的排序方式取决于其排序方式

一个传统是字符的“US-ASCII”表示,特别是在C编程语言中。当文本根据ASCII排序时,顺序仅取决于ASCII规范中每个字符的数值。有时这被称为“C”语言环境

现代软件通常应该使用合适的语言环境,以便按照人们期望的方式进行排序,而不考虑计算机使用的字符的数字表示


另请参见

这可能与此相关:对我来说似乎是另一种情况->我不明白你在说什么。令人困惑的是,排序顺序并不能反映真实的单词。
localeCompare
去掉了发音符号,也就是说,它把café变成了cafe——因此,当你使用它进行排序时,它是将cafe与cafeI进行排序。这两种不同的方法进行了测试。第一个测试是[“café”,“cafe”],第二个测试是[“cafe”,“café]。输入顺序并不重要,两次咖啡馆都是先出来的。如果去掉了发音符号,是否应该保留顺序?localeCompare的问题是,它完全依赖于实现,并且您无法保证两个浏览器使用此方法的行为相同(尽管大多数情况下是这样的)。我不知道你在什么浏览器中进行测试,但是在最新的chrome
“cafe.localeCompare('caf')!='café'.localeCompare('cafe')
,因此应该保留订单。