这个排序功能如何工作?

时间:2016-12-11 13:29:07

标签: javascript sorting

我正在从FreeCodeCamp课程学习javascript,我遇到了这个排序功能。

var array = [1, 12, 21, 2];

// Only change code below this line.

array.sort(function(a,b){
  return b - a;
});

该排序函数用于按递减顺序对数组元素进行排序,我只是不知道如何。 有人可以解释一下吗?

2 个答案:

答案 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;,则会翻转排序顺序。