在阅读一些教程代码时,我发现你可以在Javascript的sort
方法中调用一个函数。例如,我有一个填充整数的数组:
var a = [8,6,2,4];
要从最大到最小的顺序排列这些整数,我创建了以下内容:
function numSort(num1, num2) {
if (num1 > num2) {
return 1;
} else if (num1 === num2) {
return 0;
} else {
return -1;
}
}
最后将sort方法调用到我的数组
a.sort(numSort);
有两件事我不明白。特别是这个函数只接受两个参数,而我的数组则是两倍。我的问题是:
numm1
,num2
?sort
方法中调用此函数时传递了什么?答案 0 :(得分:0)
sort
,而不是你编写的函数。完整的算法是in the spec。sort
函数的内部调用(将函数作为参数传递给它),而不是由您的代码调用。答案 1 :(得分:0)
- 尽管只有两个参数numm1,num2?
,这个函数如何遍历每个元素 醇>
它没有。 numSort
不会迭代任何事情,它仍会进行迭代。sort
。所有发生的事情是sort
使用您提供的函数来判断任何给定的两个元素是否出现故障。
- 在sort方法中调用此函数时,如何以及为什么没有传递参数?
醇>
因为它的不是被调用。正在调用sort
,函数numSort
正在传递给它。您的整个函数numSort
是函数sort
的参数。
答案 2 :(得分:0)
您可以在以下网站找到问题的详细解答