2017-02-12 226 views
0

quick question。 JavaScript中的.sort方法是否使用ASCII顺序自动对数组中的项进行排序。我已经看过例子等,但没有在任何地方看到明确的答案。还有什么替代方法按字母顺序排列数组?按字母顺序排列数组javascript

在此先感谢

+1

那么做一个小脚本来测试呢?像“[”D“,”C“,”B“,”A“]。sort();'?它按以下排序:[*“如果省略,数组根据每个字符的Unicode代码点值进行排序”*](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/磁盘阵列/排序)。 –

+1

你可以阅读这个。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort – Aamerallous

回答

2

是的。如果您查看MDN上的.sort()方法,它将说明省略比较功能参数时的情况:

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

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

+0

是的.sort()方法是这样做的。 var stringArray = ['Blue','驼背','Beluga']; console.log('Sorted:',stringArray.sort()); 结果=分拣:Beluga,Blue,驼背 – Aamerallous

-1

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

字典顺序对于人类文本并不是很有用。由于您询问了按字母顺序排序的内容,因此您必须牢记特定语言的书写系统的字母表。所以,也许你想通过localeComparesort