我已经编写了一个自定义排序例程(sortArray(a, b)
)来对我拥有的数组进行排序。
如果我这样称呼它
a.sort(function (v1, v2) { return sortArray(v1, v2); });
一切正常。
如果我这样称呼它:
a.sort(sortArray(v1, v2));
v1和v2引发错误,因为未定义。
如果没有创建匿名函数来首先接收它们,然后将其传递给用户定义的函数,是否没有办法利用.sort()方法传递的参数?
最佳答案
Array.prototype.sort
需要一个函数引用,但是您正在尝试调用sortArray
并传递该调用的返回值。您应该只传递对函数的引用:
a.sort(sortArray);
由于
sortArray
已经需要两个参数,因此它应该可以正常工作,v1
和v2
将自动传递。