" compareFunction"的参数是什么?在JavaScript中的数组?

时间:2017-06-22 12:45:26

标签: javascript arrays

" compareFunction"的参数是什么?在JavaScript中的数组? 如果您注意到第二个参数,则它会以任何特定顺序随机出现。而第一个参数始终是当前的顺序。我想知道第二个论点是如何选择的。

arr.sort(compareFunction)

1 个答案:

答案 0 :(得分:3)

您完全不会对排序机制传递参数的方式或原因做出任何假设。它不在规范中,JavaScript运行时可以任意方式自由地实现排序。甚至不要求在所有情况下都使用相同的排序机制。

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