我从FreeCodeCamp课程学习JavaScript,并且遇到了这个排序功能。这个排序功能是如何工作的?
var array = [1, 12, 21, 2];
// Only change code below this line.
array.sort(function(a,b){
return b - a;
});
这个排序函数用于数组的递减顺序的元素进行排序,我只是不明白怎么样。 有人可以解释我吗?
我从FreeCodeCamp课程学习JavaScript,并且遇到了这个排序功能。这个排序功能是如何工作的?
var array = [1, 12, 21, 2];
// Only change code below this line.
array.sort(function(a,b){
return b - a;
});
这个排序函数用于数组的递减顺序的元素进行排序,我只是不明白怎么样。 有人可以解释我吗?
比较功能
function (a, b) {
return b - a;
}
的结果由排序功能使用。
这很简单。每个减法的结果告诉排序函数哪个参数更大/更小,或者它们是否相等。
12 - 3 = 9 // positive result ---> first arg greater than second
10 - 20 = -10 // negative result ---> first arg lesser than second
10 -10 = 0 // equal
根据这些结果,排序函数重新排列数组。
如果您将其更改为return a - b;
排序顺序将被翻转。
嘿,我有anothr问题 – buoyantair
这不是排序功能,它是一个呼叫内部排序函数传递用户给出的比较函数。这个比较函数简直就是,使用,由array.sort
(这是深入Javascript内部,你不能轻易看到它)智能地交换元素,如果他们没有秩序。
它允许用户给定的比较函数的原因是因为您可能想要倒序或alpha排序而不是数字,或任何其他不同的方法来排序数据。
只有一件事缺失,“如何”(比较结果大于/小于零导致交换,等等) – arhak
您是否尝试在调试器中逐行浏览它? – csmckelvey
你有充分和非常有文件解释在这里:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort –
嗯好吧对不起,我应该尝试过:c – buoyantair