【问题标题】:Sort array alphabetically javascript按字母顺序排序数组javascript
【发布时间】:2017-02-12 04:21:11
【问题描述】:

快速提问。 javascript 中的 .sort 方法是否使用 ASCII 顺序自动对数组中的项目进行排序。我已经查看了示例等,但在任何地方都没有看到明确的答案。还有哪些按字母顺序排列数组的替代方法?

提前致谢

【问题讨论】:

标签: javascript arrays sorting


【解决方案1】:

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

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

既然 Unicode 是 ASCII 的超集,那么是的,它确实按 ASCII 顺序排序。

【讨论】:

  • 是的 .sort() 方法正在这样做。 var stringArray = ['Blue', 'Humpback', 'Beluga']; console.log('排序:', stringArray.sort());结果 = 排序:白鲸、蓝色、座头鲸
【解决方案2】:

除非您使用“面巾纸”之类的“ASCII”(相对于面巾纸),否则 JavaScript 中的任何内容都不是 ASCII。特别是,字符串是 UTF-16 代码单元的计数序列,其中一个或两个编码一个 Unicode 代码点。 (这适用于 Java、.NET、JavaScript、HTML、XML ......)

字典顺序对于具有人类价值的文本不是很有用。由于您询问按字母排序,因此您必须牢记特定语言的书写系统的字母表。所以,也许您想将localeCompare 传递给sort

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 2017-05-18
    • 1970-01-01
    • 2021-06-25
    相关资源
    最近更新 更多