JavaScript中按字母顺序对数组进行排序

3
快速问题。在JavaScript中,.sort方法是否自动使用ASCII顺序对数组中的项目进行排序?我查看了示例等,但没有在任何地方看到明确的答案。此外,有哪些其他按字母顺序对数组进行排序的替代方法?
提前致谢。

1
做一个小脚本来测试怎么样?像这样["D", "C", "B", "A"].sort();。它按以下方式排序:"如果省略,则根据每个字符的 Unicode 代码点值对数组进行排序" - Spencer Wieczorek
1
你可以阅读这个:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/sort - Aamerallous
2个回答

8
是的。如果您查看 MDN 上的 .sort() 方法( .sort() ),当省略 compare 函数参数时,它会说明:

指定定义排序顺序的函数。如果省略,则根据每个元素的字符串转换,按照每个字符的 Unicode 码点值进行排序。

由于 Unicode 是 ASCII 的超集,因此它确实按 ASCII 顺序进行排序。


是的,.sort() 方法就是这样做的。var stringArray = ['Blue', 'Humpback', 'Beluga']; console.log('Sorted:', stringArray.sort()); 结果为 Sorted: Beluga,Blue,Humpback。 - Aamerallous

0

除非您像使用“Kleenex”(而不是面部纸)一样使用“ASCII”,否则JavaScript中没有任何内容是ASCII的。特别地,字符串是UTF-16代码单元的计数序列,其中一个或两个代码单元编码一个Unicode代码点。(这适用于Java、.NET、JavaScript、HTML、XML等)

字典序排序对于人类价值文本并不是非常有用。由于您询问按字母表顺序排序,您必须考虑一种特定语言编写系统的字母表。因此,也许您希望将localeCompare传递给sort


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接