我正在从FreeCodeCamp课程学习javascript,我遇到了这个排序功能。
var array = [1, 12, 21, 2];
// Only change code below this line.
array.sort(function(a,b){
return b - a;
});
该排序函数用于按递减顺序对数组元素进行排序,我只是不知道如何。 有人可以解释一下吗?
答案 0 :(得分:1)
这不是排序功能,它是对内部排序函数的调用,它传递用户给定的比较函数。该比较函数只是由$(window).on('resize', function(){
$('.grid .grid-item').filter(function() {
return $(this).css('top') == '0px';
}).css("opacity", "0.5");
});
<在{J}中深入使用(在您无法轻易看到的Javascript中),以便在元素无序时智能地交换元素。
它允许用户自定义比较功能的原因是因为您可能需要逆序,或字母排序而非数字,或任何其他不同方式对数据进行排序。
答案 1 :(得分:1)
比较功能的结果
function (a, b) {
return b - a;
}
由sort函数使用。
这很简单。每个减法的结果告诉sort函数哪个参数更大/更小,或者它们是否相等。
12 - 3 = 9 // positive result ---> first arg greater than second
10 - 20 = -10 // negative result ---> first arg lesser than second
10 -10 = 0 // equal
根据这些结果,sort-function重新排列数组。
如果您将其更改为return a - b;
,则会翻转排序顺序。