“的论点是什么?”;“比较函数”;在JavaScript的数组中?

“的论点是什么?”;“比较函数”;在JavaScript的数组中?,javascript,arrays,Javascript,Arrays,JavaScript中数组中“compareFunction”的参数是什么? 如果你注意到第二个参数,它是随机出现的,而不是以任何特定的顺序出现。而第一个参数始终按当前顺序。我想知道第二个论点是如何选择的 arr.sort(compareFunction) 对于排序机制传递参数的方式或原因,您完全不能做任何假设。它不在规范中,JavaScript运行时可以任意实现排序。甚至不需要在所有情况下都使用相同的排序机制 comparator函数应该只是比较两个元素并返回一个数值结果。此外,适当的比较函

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

arr.sort(compareFunction)

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


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

在某些情况下是(至少部分地)。@Quentin我不确定是否看到任何规定传递给函数的元素对的模式的内容,除此之外,排序过程不应传递
未定义的
元素。