Javascript的原生排序方法如何工作?

时间:2015-12-09 17:18:14

标签: javascript sorting mergesort

[1, false, 10, "b", 3, "33", ":", "R", "^"].sort()

产生以下种类:

[1, 10, 3, "33", ":", "R", "^", "b", false]

任何人都可以解释排序方法的工作原理吗?我猜测它必须将所有内容翻译成ASCII。

当我这样做时,情节变浓了

[1, false, 10, "b", 3, "33", ":", "R", "^"].sort(function(a,b) {return b-a})

输出以下内容:

[10, 1, false, "b", "33", 3, ":", "R", "^"]

这种疯狂的任何方法?

1 个答案:

答案 0 :(得分:6)

来自MDN:

  

如果未提供compareFunction,则通过将元素转换为字符串并按Unicode代码点顺序比较字符串来对元素进行排序。

  

如果提供compareFunction,则根据比较函数的返回值对数组元素进行排序。

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort