2017-06-22 70 views

回答

3

对于排序机制如何以及为什么要传递参数,您可以不做任何假设。它不在规范中,并且JavaScript运行时可以自由地以任何想要的方式实现排序。甚至不需要在所有情况下都使用相同的排序机制。

比较函数应该简单地比较两个元素,并返回一个数字结果。此外,适当的比较函数应该是一致的:对于任何一对元件(以任一次序),调用比较函数的结果应该反映相同的排序。函数也应该是传递一致的。比较函数不应对正在排序的列表进行任何更改。如果比较函数不满足这些条件,则排序操作的结果是实现定义的(即,不能依赖任何特定的结果)。

+1

它是(至少部分地)[在spec](http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.sort)为* *一些病例。 – Quentin

+1

@Quentin我不知道我看到什么,规定了对传递给函数的元素,比排序过程不应该通过'undefined'元素之外的其他模式。 – Pointy

相关问题