arrayObj.sort的解释([sortFunction])

时间:2017-10-04 09:57:34

标签: javascript sorting

我知道排序数组,但我有一个问题,我很想知道。

例如:

var array = [9,3,0,-2,15];

所以,让我们对它进行排序:

function sortFunction(a, b){

  if(a < b) return -1; // or any number that less than zero, but why?
  if(a > b) return 1; // or any number that above zero, but why?
  if(a = b) return 0; // but why?

  // I know it may be easier a - b, I've written it for clarity

}

array.sort(sortFunction); //so we'll get correct result

如何理解为什么必须返回-1,1和0来排序数组?

P.S。对不起,如果问题似乎很愚蠢,我还没有在谷歌找到答案。

1 个答案:

答案 0 :(得分:2)

来自MDN

  
      
  • 如果compareFunction(a,b)小于0,则将a排序为低于b的索引,即a先出现。
  •   
  • 如果compareFunction(a,b)返回0,则保持a和b相对于彼此保持不变,但是对于所有不同的   元素。注意:ECMAscript标准不保证这一点   行为,因而并非所有浏览器(例如Mozilla版本约会   回到至少2003年)尊重这一点。
  •   
  • 如果compareFunction(a,b)大于0,则将b排序为低于a的索引。
  •   

有三种结果,因此有三种可能的返回值。