array.sort如何工作?

时间:2011-07-09 23:06:02

标签: javascript

  

可能重复:
  How does Javascript's sort() work?

var myarray=[25, 8, 7, 41]
myarray.sort(function(a,b){return b - a})//  for descending order

在回调函数中,ab变量是指什么? 为什么以及b-a如何按降序精确地生成数组?

3 个答案:

答案 0 :(得分:7)

ab是数组中的两个值,您可以对它进行比较,以便Javascript对它们进行排序。

多次调用该函数以确定数组中每个元素与所有其他元素的比较。调用函数的确切次数取决于数组中元素的数量及其原始顺序。

如果两个元素相等,则需要返回0;如果a应该在b之前,则返回负数;如果b应该在a之前,则返回正数

答案 1 :(得分:2)

sort函数具有内部排序算法。您只需为算法提供一种方法,在给定数组的两个成员的情况下,确定哪一个更大(这是b-a的目的。)使用此算法,算法将能够放置元素按照必要的顺序。

答案 2 :(得分:-1)

不传递任何参数将指定升序词典顺序(按字母顺序排列)。

但是,您也可以选择传入array.sort将用于对数组进行排序的函数。您传入的函数应该恰好比较两个元素,而array.sort函数将使用您的函数,以便有效地对整个数组进行排序。你的函数应该只是比较两个值。

如果a在b之前,你的函数应返回负数,如果a等于b,则返回0,如果a在b之后,则返回正数。因此return b - a将按降序运行,因为每当b-a为正数时,b就越大,因此将在a之前,因此“降序”。类似于负值和等值。