为什么 Javascript Array.sort
函数在将不正确的比较函数(即参数数量!= 2 的函数)传递给它进行排序时不会抛出错误。根据我的理解,排序函数有可选的compareFunction函数。该函数需要 2 个参数。
示例 1:具有 1 个参数的compareFunction
var ar = [1,4,2,3];
console.log(ar.sort(function(a){return 2-a;}));
控制台输出
VM239:2 [4, 2, 3, 1]
示例2:具有 2 个参数的compareFunction
var ar = [1,4,2,3];
console.log(ar.sort(function(a,b,c){return a-b-c;}));
控制台输出
VM408:2 [1, 4, 2, 3]
最佳答案
您可以使用任意数量的参数重载函数,因为参数来自函数的“参数数组对象”。所有额外的参数都会被忽略,因此您的排序函数不会抛出错误。 Javascript 在处理这些事情时相当灵活。 :)
关于javascript - 为什么 Javascript Array.sort 函数在比较函数不正确时不会抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31964709/